重写
example.com/about-us?pageID=1 to example.com/about-us
在以下规则和其他规则中进行了尝试,但似乎没有任何工作
Redirect 301 /about-us?pageID=1 http://example.com/about-us
这个有效,但也会扰乱其他链接
RewriteCond %{QUERY_STRING} pageID=1
RewriteRule (.*) http://example.com/about-us? [R=301,L]
还有其他网页包含about-us/pageid
和product/pageID
,这些页面无需受到干扰我只需要重定向此特定链接。
答案 0 :(得分:0)
您应该可以在example.com/about-us
:
.htaccess
RewriteEngine On
RewriteRule ^about-us$ /about-us?pageID=1 [L]
在测试之前,请确保清除缓存。
答案 1 :(得分:0)
要重定向该特定网址(实际上只是删除查询字符串),您应该添加RewriteRule
模式以匹配网址路径(就像您对Redirect
所做的那样指令)。
RewriteCond %{QUERY_STRING} ^pageID=1$
RewriteRule ^(about-us)$ /$1? [R=301,L]
如您所见,您需要使用mod_rewrite(即RewriteCond
)才能匹配查询字符串。
$1
只是对RewriteRule
模式中匹配组的反向引用,即。 "约-我们&#34 ;.这样就可以避免重复"关于我们"。
在测试之前清除浏览器缓存,因为早期的301s将被缓存。因此,使用临时(302)重定向进行测试通常更容易。