我正在開發一個PHP的網站,它運行在本地主機上的Apache 2.2和Windows 7爲什麼Windows上的localhost上mod_rewrite和.htaccess的配置不起作用?
在我的httpd.conf我啓用了mod_rewrite模塊:
LoadModule rewrite_module modules/mod_rewrite.so
我有一個文件位於D:\ MyWeb和我正在處理的網站位於D:\ MyWeb \ simple_cms
出於測試目的,我將.htaccess文件放在D:\ MyWeb \ simple_cms中,這裏是它的內容:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)\.htm$ $1.php [NC]
現在,要求http://127.0.0.1/simple_cms/index.htm應 「重定向」 到http://127.0.0.1/simple_cms/index.php但它顯示 「404未找到錯誤」(當然存在的index.php那裏)
在access.log的有:
127.0.0.1 - - [15/Jul/2011:14:16:15 +0200] "GET /simple_cms/index.htm HTTP/1.1" 404 218
並在裏面error.log:
[Fri Jul 15 14:19:30 2011] [error] [client 127.0.0.1] File does not exist: D:/MyWeb/simple_cms/index.htm
爲什麼這是行不通的?這個正則表達式是否無效?
1)確保啓用了.htaccess文件(將'AllowOverride All'放在合適的位置); 2)請啓用重寫調試('RewriteLogLevel 9')並檢查重寫日誌。 – LazyOne
'AllowOverride All' - 基本上,這是答案。請把它作爲一個新的答案,我可以接受它。謝謝 –