我想重寫所有的404到index.php,我使用PHP的parse_url()
來確定要包含哪個文件(例如about-us.php,contact-us.php),並且我得到了一些非常奇怪的結果。如何使用cPanel URL將所有404的重寫爲index.php?
我正在通過的cPanel自動創建的 '開發' 網址: http://xxx.xxx.xxx.xxx/~mySite/
電流法
我.htaccess
文件包含以下內容:
RewriteEngine on
RewriteBase /~mySite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-_.]+)$ index.php
而且結果是一個混合包:
xxx.xxx.xxx.xxx/~mySite/contact-us
渲染得很好。
xxx.xxx.xxx.xxx/~mySite/contact-us/phone
將拋出一個404,它不會被mod_rewrite
捕獲。
xxx.xxx.xxx.xxx/~mySite/about-us
重寫爲服務器根(xxx.xxx.xxx.xxx/index.php)。
以前嘗試
ErrorDocument 404 /~mySite/index.php
我也得到了類似的結果,除了以下:
xxx.xxx.xxx.xxx/~mySite/contact-us/phone
重寫到index.php
但我所有的CSS和JS包括關斷,因爲他們正試圖加載相對於/~mySite/contact-us
而不是/~mySite
。
任何幫助?我正在走出我的想法。特別是contact-us
工作正常,但about-us
沒有?
爲什麼不只是'ErrorDocument 404/index.php'? –
Hi @MarcB,看到上面的新編輯。 – AJB
很明顯,出於某種神祕原因,'ErrorDocument 404/index.php'對字符串'about-us'也不起作用。 – AJB