2017-10-08 50 views
0

爲靜態我想創建一個動態規則(可能的.htaccess)是否在頁面重定向來自:的.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

我假設你的意思是301從/dir/search?q=stack-overflow重定向到/dir/stack-overflow,也就是說如果用戶輸入https://www.example.com/dir/search?q=stack-overflow,瀏覽器URL將變爲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] 

我不想重寫,而不是刪除最後兩行。