对于一个简单的php网站,我想拥有友好的URL。所以我希望我的网址看起来像:
指向:
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 :(得分:1)
只需颠倒两条规则的顺序,然后使用 L 标志代替 N :
RewriteCond $1 !.*\.php$
RewriteRule ^([^/=]+)/?([^/]*)/?$ $1.php?id=$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]