2013-10-16 83 views
2

我試圖剝離下來htaccess的mod_rewrite的與

http://host.name/html/about.html 

刪除目錄

http://host.name/about.html 

,但我不斷遇到一個404錯誤,在我的.htaccess文件如下:

Options +FollowSymLinks 
RewriteEngine on 
rewritebase/
RewriteRule ^html/(.*) $1 [R,L] 

http://htaccess.madewithlove.be/說它有效,我認爲它是有效的,但顯然有一些我錯過了。

任何人都可以糾正我嗎?

編輯:

它還反彈根,當我試圖訪問/ HTML/

回答

0

你擁有它倒退。由於實際資源位於/html/about.html,因此您需要在內部重寫該URI,而不是從。一旦內部重寫就緒後,您可以將任何直接請求從外部重定向到html目錄。因此,像:

Options +FollowSymLinks -Multiviews 
RewriteEngine On 

RewriteCond %{THE_REQUEST} \ /html 
RewriteRule ^html/(.*)$ /$1 [L,R=301] 

RewriteCond %{DOCUMENT_ROOT}/html%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/html%{REQUEST_URI} -d [OR] 
RewriteCond %{DOCUMENT_ROOT}/html%{REQUEST_URI} -s 
RewriteRule ^(.*)$ /html/$1 [L] 

或者你也可以更換最後一組條件/規則到:

RewriteCond %{REQUEST_URI} !^/html/ 
RewriteRule ^(.*)$ /html/$1 [L] 
+0

不,同樣的結局。直接訪問/ html反彈回根目錄,但具體頁面404的 –

+0

@LiamDolman可以嘗試替代最後一條規則 –

+0

第二部分像魅力一樣工作,謝謝! –