2012-03-05 132 views
0

我需要的是重定向從某個目錄到父目錄的索引文件的所有內容。瀏覽器中的URL也必須改變,只是直接修改。我該怎麼做呢?我試過mod_rewrite - 簡單重定向到父目錄

RewriteRule ^(.*)/?$ ../ [R] 

但它顯示一個錯誤和實際的系統路徑!

回答

3

使用絕對HTTP URL最容易實現:

# We assume this is in .htaccess inside the directory to be redirected 
RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/parent 
RewriteRule ^(.*)?$ http://%{HTTP_HOST}/parent [R=301,QSA,L] 

注意,QSA加入保存查詢字符串,但可以如果被刪除你不想要它。

+0

謝謝,雖然使用絕對URL打擊,但有點作品。另外,由於父目錄也使用URL重寫,並且使用RewriteRule ^(。*)/?$ index.php?where = $ 1 [QSA,L],當URL由您寫入的內容重定向時,會重定向到http :// host/parent /?where = child – DMIL 2012-03-05 18:19:47

+0

@DMIL RewriteCond添加上面以禁止重寫循環。 – 2012-03-05 18:24:25

+0

不適用於RewriteCond,不使用RewriteCond行,儘管絕對URL是一個大問題。此外,如果省略了小孩的尾部斜槓,則工作方式不同,然後顯示來自父級的重定向。 **編輯:事實上,似乎RewriteCond行沒有任何效果。 – DMIL 2012-03-05 18:28:53

0

您可以使用redirectMatch:

RedirectMatch 301 ^/child/?$ http://example.com/ 
+0

我會把這個放在哪裏?在父目錄.htaccess中?在父目錄的重寫規則之前或之後,究竟在哪裏?此外,它不起作用。它重定向到的URL是http://主機名/父/子而不是http://主機名/父 – DMIL 2012-03-05 18:23:20

+0

它應該在當前目錄中。它不應該在.htaccess文件中的位置。 – 2012-05-28 21:28:33

相關問題