我在Apache2
下有一個網站,可以通過不同的URL從外部和內部訪問。它必須工作在example.com/
和example.com/sites/mysite/
。因此,我使用相對URL在我的HTML,如:Apache的mod_rewrite的一些高級功能?
../static/css/style.css
../some_other_page.html
爲了處理無效的請求不存在的頁面(例如,example.com/non_existing_page/
)我做了一個自定義錯誤頁(其中還包含鏈接到其他部位該網站的),並使用mod_rewrite
傳遞的要求有:
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule .* /custom_404_page/ [PT]
其結果是,用戶看到很好的定製頁面,而地址欄仍然包含原來的請求。該規則也可以根據基本URL進行調整。但是,當向子目錄(例如,example.com/non/existing/page/
)提出無效請求時,錯誤頁面被破壞,因爲鏈接是相對的(例如,../static/css/style.css
現在解析爲example.com/non/existing/static/css/style.css
)。我可以使用[R]
(重定向)標誌而不是[PT]
修復此問題;然而,然後地址欄也讀取example.com/custom_404_page/
,我想避免。
因此,我不知道是否有可能Apache2
下運行,同時保留所有的三個功能:
- 可能性在不同的基本URL
- 顯示自定義錯誤頁的無效請求
- 護跑地址欄中的原始請求
你可能想使用'FallbackResource'來代替,試試看。 –