2011-01-29 62 views
3

對於一個簡單的php網站,我想要有友好的網址。所以,我想我的網址看起來像:htaccess和mod_rewrite導致apache失敗,丟失文件

http://mysite.com/page/123

指向:

http://mysite.com/page.php?id=123

而這個作品!但是如果我指向一個不在服務器上的文件,apache會出現尖峯,我必須強制Apache退出(現在用MAMP進行本地開發)。

這是我的.htaccess文件。有任何想法嗎?

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteRule ^([^/=]+)/?([^/]*)/?$ $1.php?id=$2 [N,QSA] 

ErrorDocument 404 /404.php 
+0

Apache不喜歡它的時候,它需要的文件不存在。如果我指定虛擬主機中不存在的錯誤日誌文件,它甚至不會啓動。 – Endophage 2011-01-29 05:31:28

+0

它也使我脾氣暴躁,但缺少文件是生活的一部分。有沒有辦法讓apache正確行爲? 404規則爲什麼不踢? – Corey 2011-01-29 06:13:26

回答

1

只是扭轉你的兩個規則的順序和使用大號標誌,而不是ñ

RewriteCond $1 !.*\.php$ 
RewriteRule ^([^/=]+)/?([^/]*)/?$ $1.php?id=$2 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L]