程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> Apache URL重定向避免網址結尾斜線問題

Apache URL重定向避免網址結尾斜線問題

編輯:PHP基礎知識
 

結尾斜線問題

描述:

每個網主都曾受到結尾斜線問題的折磨,若在URL中沒有結尾斜線,服務器就會認為URL無效並返回錯誤,因為服務器會根據/~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]


這方法也適用於.htaccess文件在各目錄內設定,但這設定會覆蓋原先主配置文件。


RewriteEngine on
RewriteBase /~quux/
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])___FCKpd___17nbsp; $1/ [R]

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved