仍然在我的Joomla 2.5网站上工作,现在我意识到谷歌和其他网站上的旧链接我想要301重写:
http://www.my-site.com/index.php?p=26
导致
http://www.my-site.com/new-link.html
我试过
RewriteRule ^index.php?p=26$ /new-link.html [L,R=301]
但这不起作用。
我想补充一点,我需要特定的重写,例如index.php?p = 26 - > new-link.html,... p = 99 - > another-link.html等。
答案 0 :(得分:1)
否则无效,因为您无法在RewriteRule
中匹配QUERY_STRING。
尝试此规则:
RewriteCond %{THE_REQUEST} \s/+index\.php\?p=([^\s&]+) [NC]
RewriteRule ^ /new-link.html? [L,R=301]
修改强>
编写规则特定ID:
RewriteCond %{THE_REQUEST} \s/+(?:index\.php)?\?p=26(?:&|\s) [NC]
RewriteRule ^ /new-link.html? [L,R=301]
RewriteCond %{THE_REQUEST} \s/+(?:index\.php)?\?p=12345(?:&|\s) [NC]
RewriteRule ^ /another-link.html? [L,R=301]