我在我的.htaccess
文件中使用以下mod-rewrite
:MOD-重寫規則被打破404路由
RewriteRule ^$ pages/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ pages/$1 [L]
意圖是隱藏在URL顯示名爲/pages/
子目錄。
所以這個:http://mysite.com/pages/home.html
看起來就像這樣:http://mysite.com/home.html
它的工作原理,但也有一些意想不到的後果。
作爲我在上面發佈的.htaccess
代碼的直接結果,我的404路由根本不再工作。任何應該觸發404錯誤頁面的東西都會產生一個500 Server Error
。
如何解決?
編輯:
如以上所表明的,不如果自定義404頁在.htaccess
或沒有定義關係。沒有它,或錯誤頁面的錯誤路徑,服務器仍應該路由到其默認的404頁面,而不是給出500 Server Error
。
當然,必須有一個標準的方法來抑制URL的部分,而不會破壞404錯誤的正常路由。從我的在線研究中可以看出,我上面的方法通常打破了404路由,但迄今爲止,我還沒有看到適用的解決方案。 (這不是一個WordPress的安裝;只是靜態的HTML內容)
編輯2:
因爲我只是想從URL抑制一個目錄,我從來沒有說過,我也有其他文件&目錄這是兄弟姐妹/pages/
不能在/pages/
指出,如/graphics/
,/includes/
,/css/
,/cgi-bin/
,robots.txt
,favicon.ico
等
也許這一切都是徒勞無益或比它更值得付出的麻煩?
尋找一個確定的答案任何一種方式。
Wy你不只是將/ pages /的內容移動到/? –
謝謝@max_,當然我已經考慮過了。答案是:因爲我想讓我的系統在我的靜態內容的邏輯上組織在一個位置。如果真的沒有可行的解決方案,那麼在URL中顯示'/ pages /'並不是世界上最糟糕的事情。 – Sparky