我有这个链接
www.example.com/1/title
进入
www.example.com/post.php?author=1&title=title
因为这条规则
RewriteRule ^post/([0-9]+)/([\w-_:]+)/?$ post.php?author=$1&title=$2 [L,QSA,NC]
很好,但现在怎么办呢,如果有人输入www.example.com/post.php?author=1&title=title重定向到www.example.com/1/title
我花了几个小时在网上研究这个,但信息含糊不清(至少对我来说)并且不起作用。
到目前为止,有两件事让我感到困惑:我知道稍后可以使用$ 1和$ 2来访问(群组)...但是当尝试反向时我无法使其工作。例如:
RewriteRule ^post.php?author=([0-9]+)&title=([\w-_:]+)$ post/$1/$2
但就像我说没有任何作用。我一直在http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html这样的网站上打我的头,但我无法完全理解(或应用)我在那里读的东西。你能否让我知道我做错了什么或我该如何处理这个问题?
非常感谢你能给我的任何帮助
答案 0 :(得分:1)
你需要一个像这样的新规则:
RewriteCond %{THE_REQUEST} \s/+post\.php\?author=([^&]*)&title=([^\s&]+) [NC]
RewriteRule ^ post/%1/%2? [R=302,L]
RewriteRule ^post/([0-9]+)/([\w-_:]+)/?$ post.php?author=$1&title=$2 [L,QSA,NC]