我正在尝试通过我的.htaccess重定向页面,但它似乎没有用。
旧页:/ dyn /?q =客户%20参考& f = 1,1,1,1,1,1& c = 10,10,10,10,10,10& s = 1,1, 1,1,1,1,1&安培; ST = 1
新页面:/ customer-references /
认为它就像这样简单:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^q=customer(?:[\ +]|%20)reference&f=1$ [NC]
RewriteRule ^dyn/$ /1? [R=301,NE,NC,L]
但它似乎没有起作用。是因为原始页面的动态URL吗?
此外,我还尝试在.htaccess中直接进行301重定向。这似乎也不起作用:
redirect 301 /dyn/?q=customer%20reference&f=1,1,1,1,1,1&c=10,10,10,10,10,10&s=1,1,1,1,1,1,1&st=1 /customer-references/
另一次失败的尝试是:
RewriteCond %{QUERY_STRING} ^customer%20reference&f=1,1,1,1,1,1&c=10,10,10,10,10,10&s=1,1,1,1,1,1,1&st=1$
RewriteRule ^$ http://www.domain.com/customer-references/? [R=301,L]
然后,我试图对此进行修改:
RewriteCond %{HTTP_HOST} ^domain.com
RewriteCond %{QUERY_STRING} ^q=customer%20reference* [NC]
RewriteRule ^(.*)$ http://www.domain.com/customer-references/ [R=301,L]
我是否需要逃出&符号或空格(%20)?
答案 0 :(得分:1)
无需转义%
和&
,因为它们不是特殊字符。
以下适用于我。将.htaccess文件放在网站的根目录中。
RewriteEngine on
RewriteBase /
# match/dyn/?q=customer%20reference&f=[ANYTHING]
RewriteCond %{QUERY_STRING} ^q=customer%20reference&f= [NC]
RewriteRule ^dyn/$ /customer-references/? [L,R=301]