Apache Mod_重写动态URL的Htaccess

Apache Mod_重写动态URL的Htaccess,apache,.htaccess,mod-rewrite,redirect,http-status-code-301,Apache,.htaccess,Mod Rewrite,Redirect,Http Status Code 301,我有这个链接 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.

我有这个链接

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

我花了几个小时在网上研究这个,但信息是模糊的(至少对我来说)和不工作

到目前为止,有两件事困扰着我:

  • 将pretty url写入dynamic,然后将dynamic写入pretty- 这不就产生了一个循环吗
  • 我还想走301重定向的路线,但我找不到 任何从第一个链接获取变量并放入的可行代码 重定向。在我看来,301是正确的选择,但我看到 很多人(例子)都是通过重写规则来完成的
我知道以后可以使用$1和$2访问(组)。。。但是当我尝试相反的方法时,我无法让它工作。例如:

RewriteRule ^post.php?author=([0-9]+)&title=([\w-_:]+)$ post/$1/$2
但就像我说的,什么都不管用。我一直在像这样的网站上绞尽脑汁,但我无法完全理解(或应用)我在那里读到的内容。你能告诉我我做错了什么或者我应该如何处理这个问题吗


非常感谢您能给我的任何帮助

您需要这样一条新规则:

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]

谢谢你-这几乎奏效了。我会看看我是否能使它充分发挥作用。到目前为止,这让我觉得自己走了一条艰难的道路,而且成功了-重写规则^?[R=302,L]-非常感谢。或者您可以在目标中加一个斜杠作为
RewriteRule^/post/%1/%2?[R=302,L]