【发布时间】:2014-03-08 14:40:50
【问题描述】:
我有这个链接
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,该怎么做呢
我已经花了几个小时在网上研究这个,但信息很模糊(至少对我来说)并且不起作用。
到目前为止,有两件事让我感到难过:
- 将漂亮的 url 写入动态,然后动态写入漂亮 - 这不会造成循环吗?
- 我也想走 301 重定向的路线,但我找不到 从第一个链接中获取变量的任何可行代码放入 重定向。在我看来,301 是正确的选择,但我看到 很多人(示例)通过 RewriteRule 进行操作。
我知道以后可以使用 $1 和 $2 访问(组)...但是当尝试反向时,我无法使其工作。例如:
RewriteRule ^post.php?author=([0-9]+)&title=([\w-_:]+)$ post/$1/$2
但就像我说的那样,没有任何效果。我一直在 http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html 这样的网站上打我的头,但我无法完全理解(或应用)我在那里阅读的内容。你能告诉我我做错了什么或者我应该如何解决这个问题吗?
非常感谢您能给我的任何帮助
【问题讨论】:
标签: apache .htaccess mod-rewrite redirect http-status-code-301