我想将网址http://www.mywebsite.com/tutos/tutos.php?q=my-tuto/tuto-1.html重定向到 http://www.mywebsite.com/tutos/tutos/my-tuto/tuto-1.html,如何使用.htaccess做到这一点?
我尝试了这个,但它不起作用......:
RewriteRule ^http://www.mywebsite.com/tutos/([^-]*)$ http://www.mywebsite.com/tutos/tutos.php?q=$1 [L,QSA]
谢谢!
答案 0 :(得分:1)
您所拥有的规则似乎正在执行您想要的相反。它将非查询字符串网址重定向到查询字符串网址。但如果这是你想要的,你需要从正则表达式中删除主机和协议。只有URI(sans查询字符串)用于匹配RewriteRule
:
RewriteRule ^tutos/([^-]*)$ /tutos/tutos.php?q=$1 [L,QSA,R=301]
但如果你想要它,就像你问过的那样:
RewriteCond %{QUERY_STRING} (.*)(^|&)q=([^&]+)(.*)
RewriteRule ^tutos/tutos.php$ /tutos/%2?%1%3 [L,R=301]