我正在尝试清理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/
请帮帮我
答案 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/?