2012-02-13 35 views
0



我想重定向以下301將index.php?dir =重定向到一個文件夾?

http://www.example.com/folder/index.php?dir=Dir1 
http://www.example.com/folder/index.php?dir=Dir1/Dir2 

http://www.example.com/folder/Dir1 
http://www.example.com/folder/Dir1/Dir2 

我想 「301重定向」 它不是 「重寫」,即我想要的 「的index.php?DIR =」 鏈接到301重定向到文件夾結構。

請指教?

回答

1

在DocumentRoot .htaccess中執行此操作。

Options +FollowSymLinks 

RewriteEngine On 
RewriteBase/

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule .* - [L] 

RewriteCond %{QUERY_STRING} ^dir=(.*)$ [NC] 
RewriteRule^folder/%1? [L,R=301] 

RewriteRule ^folder/(.+)/? folder/index.php?dir=$1 [L,QSA] 
+0

我想你已經誤解了這個問題(或者我沒有詳細解釋過)。我只想讓「index.php?dir =」消失。 dir1/dir2只是一個例子!反正你的代碼進入重定向循環。 – Umer 2012-02-13 20:00:27

+0

@ user1170540立即嘗試。遵守訂單或重寫規則。 – ThinkingMonkey 2012-02-13 20:02:57

+0

仍然重定向循環!你爲什麼在上面提示'folder/index.php?dir = Dir1/Dir2'! Dir1和Dir2只是一個虛擬示例文件夾。我想要的只是/index.php?dir=後面的所有內容,重定向到/ – Umer 2012-02-13 20:08:57

1
RewriteCond %{QUERY_STRING} ^dir=(.*)$ 
RewriteRule ^folder/index\.php$ folder/%1 [L,R=302] 

更改爲301一旦工作。

+0

這根本不起作用! index.php?dir =保留在URL中! – Umer 2012-02-13 19:59:01

相關問題