如何使用url变量创建htaccess重写规则

时间:2012-08-20 10:19:07

标签: .htaccess url redirect web rewrite

我想将网址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]

谢谢!

1 个答案:

答案 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]