我需要建议301永久重定向使用htaccess所有页面都有?page = 9 with index.php
任何人都可以指导如何实现所需的
例如-1
http://www.example.com/?page=9&option=com_news&view=list&Itemid=100&limitstart=840
到
http://www.example.com/index.php&option=com_news&view=list&Itemid=100&limitstart=840
或者说例如2
http://www.example.com/?page=17&option=com_news&view=list&Itemid=100
到
http://www.example.com/index.php&option=com_news&view=list&Itemid=100
修改 使用
RewriteEngine on
RewriteCond %{THE_REQUEST} \?page=.+&(.+)\sHTTP [NC]
RewriteRule ^ /index.php&%1? [L,R=301]
但是它的输出是
http://www.example.com/index.php&limitstart=840
答案 0 :(得分:2)
假设你真的想要/index.php?option=...
而不是/index.php&option=...
- 只需匹配查询字符串:
RewriteEngine On
RewriteCond %{QUERY_STRING} page=[^&]+&(.*) [NC]
RewriteRule .* /index.php?%1 [L,R,QSD]
但是,如果您真的 希望/index.php&option=...
将RewriteRule替换为:
RewriteRule .* /index.php&%1 [L,R,QSD]
注意:无论哪种方式,如果page
不是第一个参数
如果您的Apache版本早于2.4,请将RewriteRule替换为:
RewriteRule .* /index.php?%1? [L,R]
[QSD]
标志只引入了2.4 - 无论如何都不需要,因为整个查询字符串都是匹配的。
答案 1 :(得分:1)
您可以使用:
RewriteEngine on
RewriteCond %{THE_REQUEST} \?page=.+&(.+)\sHTTP [NC]
RewriteRule ^ /index.php&%1? [L,R=301]