我有一個非常簡單的重寫規則。我的整個.htaccess文件如下:.htaccess URL重寫失敗 - 在此服務器上找不到請求的URL
RewriteEngine On
ReWriteRule ^([a-zA-Z0-9\-]+)$ /index.php?page=$1 [L,NC]
這對我的一臺運行Apache的開發機器完美運行。但是,在我運行Apache的其他開發機器(mod_rewrite在apache2handler下的PHP信息中列出)上不起作用。它也不適用於運行Windows的活動服務器。
我已經嘗試添加以下內容:
RewriteBase/
我沒有mod_rewrite的嚮導,我敢肯定,這是一個非常簡單的解決方案,但它是目前躲避我,守收到404未找到錯誤。
有一件事情在兩個不起作用的環境中有所不同,就是該網站不在URL的根目錄。因此,例如,它是http://localhost/site
和www.example.com/site
我曾嘗試過各種語法調整的.htaccess文件,並且還加入了網站基礎:
RewriteBase /site
嘗試只是讓規則^在那裏。* $用於調試 – Brad 2013-03-07 22:24:08
這似乎並沒有任何區別。我也試圖明確寫出規則。例如'ReWriteRule^home /index.php?page=home [L,NC] ' – user1100149 2013-03-08 10:42:07
另外,您在網頁瀏覽器中輸入什麼網址?您必須輸入www.example.com/site/foo才能正常工作。你可以進入你的Apache日誌並尋找error_log來查看404'究竟是什麼頁面。 – Brad 2013-03-08 20:51:08