我想创建一个动态规则(可能是.htaccess)来重定向页面:
https://www.example.com/dir/search?q=stack+overflow
到
https://www.example.com/dir/stack-overflow
我知道我需要一个/dir
文件夹
我试过这个
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*)\. search?q=$1
不工作。
答案 0 :(得分:1)
我认为您的意思是从/dir/search?q=stack-overflow
到/dir/stack-overflow
的301重定向,即如果用户输入https://www.example.com/dir/search?q=stack-overflow
,则浏览器网址将更改为https://www.example.com/dir/stack-overflow
。问题是,/dir/stack-overflow
是真正的文件夹还是文件?我不这么认为,因此你必须重新/dir/stack-overflow
回/dir/search?q=stack-overflow
。
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^q=([^&]*)
RewriteRule ^/?dir/search/?$ /dir/%1 [R=301,L]
RewriteCond %{REQUEST_URI} !^/?dir/search/?$ [NC]
RewriteRule ^/?dir/([^/?]+)/?$ /dir/search?q=$1 [L]
我不想重写,而不是删除最后两行。