htaccess - 即使在localhost上的httpd.conf中启用htaccess文件,也会显示500错误

时间:2015-08-28 05:16:00

标签: php apache .htaccess mod-rewrite

.htaccess显示500服务器错误 文件的位置是根文件夹。 以下是代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule .signup.php [L]
RewriteRule .* .signup.php [PT,L]
</IfModule>

我在httpd.conf文件中启用了htaccess文件 那是

<Directory />
  Options FollowSymLinks
  AllowOverride all
  Order deny,allow
  Deny from all
  Satisfy all
</Directory>

LoadModule rewrite_module modules/mod_rewrite.so

1 个答案:

答案 0 :(得分:1)

您的RewriteBase行没有指定目录时出错 尝试:RewriteBase / - 或 - 完全删除该行 如果这不起作用,我认为像这样写.htaccess文件会更安全:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase / 

#If we're already on .signup.php, exit so we don't get stuck in a loop
    RewriteRule .signup.php - [L]

#If doesn't exist
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
#rewrite to .signup.php and read from the top of .htaccess again
    RewriteRule .* .signup.php [PT,L]
</IfModule>

这样我们就可以避免重定向循环,以防.signup.php文件也不存在。
如果仍然无法正常工作,请尝试在没有PT标志的情况下进行测试,如果您不完全确定自己知道自己在做什么,则会出现复杂的问题.htaccess。