我对这种事情很陌生,所以如果我的问题不太清楚,我深表歉意。
我的网址如下所示
example.com/language/index?page=detail&idcontact=77
我想把它重写成这个
example.com/language/contact
我想要“联系人”前面没有 id 并忽略其他所有内容
提前谢谢您
最佳答案
URL 重写并不像您想象的那样工作。如果您因为 SEO 而想要从一个 URL 重定向到另一个 URL,您可以在 .htaccess 文件中这样做:
Redirect 301 /language/index?page=detail&idcontact=77 http://example.com/language/contact
谨慎使用代码,301
表示永久重定向。如果只是暂时的,请使用 302
。
如果您想使用 URL 重写,则可以采用其他方式。在您的代码中,您必须使用漂亮的 URL example.com/language/contact
,并且在您的 .htaccess 中,您必须将漂亮的 URL 重写为丑陋的 URL,以便您的 php 知道该怎么做。这不是最好的解决方案,它只是展示如何做到这一点:
RewriteEngine on
RewriteRule ^/language/contact /language/index?page=detail&idcontact=77
如果你想让它真正工作,你的漂亮 URL 可以使用参数,这样你的 php 就知道参数页面和 idcontact 中的内容。你可以这样做:
RewriteEngine on
RewriteRule ^/language/page-([a-zA-Z]+)/idcontact-([0-9]+) /language/index?page=$1&idcontact=$2
这样,您可以重定向到任何页面,并且参数页面仅接受字母,而 idcontact 仅接受数字。
关于php - Mod rewrite 完全重写url(忽略所有参数)/部分包含参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49002882/