无法重定向查询字符串网址

时间:2018-05-28 05:28:26

标签: .htaccess redirect

我正在尝试清理url重定向查询字符串URL。我已经尝试了stackoverflow和其他网站中提供的所有答案和规则,但没有任何改变。我以为是.htaccess文件错误,但我发现它工作正常,产生其他错误。我正在尝试重定向

http://localhost/ourallnews/category.php?cat=News

http://localhost/ourallnews/News/

首先我尝试使用它。

RewriteEngine on
RewriteCond %{QUERY_STRING} ^cat=(\w+)
RewriteRule ^ourallnews/category\.php$ /ourallnews/%1? [R=302,L]

之后我尝试了

RewriteEngine on
RewriteCond %{QUERY_STRING} ^cat=(\w+)$
RewriteRule ^ourallnews.*$ /ourallnews/%1/? [R=302,L]

没有任何改变。

我清除浏览器缓存,重新启动apache但不起作用。查询字符串网址仍然存在。

然后最后这个会带来变化。

RewriteCond %{QUERY_STRING} .
RewriteRule ^ %{REQUEST_URI}? [R=301,L]

改变

http://localhost/ourallnews/category.php?cat=News

http://localhost/ourallnews/category.php

但我的要求是show querystring值而不是URI。

http://localhost/ourallnews/news/

请帮帮我

2 个答案:

答案 0 :(得分:1)

您可以使用此

RewriteEngine on
RewriteCond %{QUERY_STRING} ^cat=(\w+)
RewriteRule ^ourallnews/category\.php$ /ourallnews/%1? [R=302,L]

这会将/ourallnews/category.php?cat=value重定向到/ourallnews/value

答案 1 :(得分:0)

以下适用于我:

xzf

与你的一些不同之处:

RewriteEngine on RewriteCond %{QUERY_STRING} ^cat=(\w+)$ RewriteRule ^ourallnews.*$ /ourallnews/%1/? [R=302,L] 匹配:

  • RewriteRule将匹配以^ourallnews.*$
  • 开头的所有内容
  • ourallnews赢得了匹配,因为^ourallnews/$表示没有$的字符串结尾

category.php重写:

  • RewriteRule是您想要的输出网址
  • 无需在重写结果中映射到/ourallnews/%1/?