Apache URL重定向避免網址結尾斜線問題
阿新 • • 發佈:2019-02-09
結尾斜線問題
描述:
每個網主都曾受到結尾斜線問題的折磨,若在URL中沒有結尾斜線,伺服器就會認為URL無效並返回錯誤,因為伺服器會根據 時,重定向後會變成
這方法也適用於.htaccess檔案在各目錄內設定,但這設定會覆蓋原先主配置檔案。
/~quux/foo
去尋找foo
這個檔案,而非顯示這個目錄。其實很多時候,這問題應留待使用者自己加「/」去解決,但是使用者會直接輸入網址。 這樣就會產生一個301重定向的請求。然後再次尋找到/index.html下。
方法:
最直觀的方法就是令Apache自動加上「/」,使用外部重定向令瀏覽器能正確找到檔案,若我們只做內部重定向,就只能正確顯示目錄頁,在這目錄頁的影象檔案會因相對URL的問題而找不到。例如我們請求/~quux/foo/index.html
的image.gif
/~quux/image.gif
。
所以我們應使用以下方法:
RewriteEngine on RewriteBase /~quux/
RewriteRule ^foo$ foo/ [R]
|
RewriteEngine on RewriteBase /~quux/
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])___FCKpd___17nbsp; $1/ [R]
|