.htaccess规则为php文件提供500错误

时间:2016-01-28 04:47:08

标签: php apache .htaccess

我看到另一个stackoverflow答案来提出当前的设置。 我希望http://myserver.com/book/1234的请求实际显示来自php文件http://myserver.com/book.php?id=1234

的内容

所以我的.htaccess看起来像这样:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
RewriteRule ^book/(.*)$ /book.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

请注意,底部的两行允许我使用类似http://myserver.php/login的网址来实际提取http://myserver.php/login.php这是正常的。 但是当我尝试拨打http://myserver.com/book/1234时出现了500错误?有什么问题?

1 个答案:

答案 0 :(得分:1)

您的代码指示服务器仅在查询字符串存在时才进行重写。因此,该规则仅在您请求/book/1234?id=1234时才有效。

删除下面的行将允许您的重写工作。

RewriteCond %{QUERY_STRING} ^id=([0-9]*)$