我正在尋找一個「.htaccess」文件解決方案來重寫以「./index.html」結尾的請求地址和「./index」僅限於站點根或子文件夾,例如「http://www.mydomain.com/index[.html]」,直至「http://www.mydomain.com/」。我發現了一些關於「index.html」問題的幫助,但是我很難使解決方案適用於「./index」的唯一請求。我使用下面的代碼與我在嘗試「./index"-only片註釋:.htaccess - 隱藏根目錄和目錄中的「/index.html」和「/ index」
# MOD_REWRITE IN USE
Options +FollowSymlinks
RewriteEngine On
RewriteBase/
# Redirect "index" page requests to either root or directory
# These first two lines work for "./index.html"...
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://%{HTTP_HOST}/ [R=301,L]
## These three lines don't work, last two are alternates of one another...
## RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index*\ HTTP/
## RewriteRule ^index*$ http://%{HTTP_HOST}/ [R=302,L]
## RewriteRule ^index*$ $1 [R=302,L]
# Hide .html extension - additional information
# To externally redirect /dir/foo.html to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule^%1 [R=301,L]
# To internally forward /dir/foo to /dir/foo.html
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*?)/?$ $1.html [L]
(後者部分是用於隱藏名」 .html」結尾,如所指出的,並且可以是多餘的,但我包括整個腳本,)我不知道Apache服務器的版本,但任何援助將不勝感激。謝謝。
第一個'RewriteRule'以及條件對我來說工作正常。你遇到的問題究竟是什麼? –
感謝您的檢查。我試圖在第一次重寫下面的double#後面得到註釋代碼,以匹配「/ index」和可能的「/index.html」條件,並重寫URL第一次重寫。否則,如果我只是得到「/ index」條件來匹配並重寫爲「/」,我不會介意有兩個重寫條件,但我不能得到任何我試圖處理「/ index 「條件,根本。 –