![.htaccess 文件导致“500 内部服务器错误”,但没有错误日志条目](https://linux22.com/image/640830/.htaccess%20%E6%96%87%E4%BB%B6%E5%AF%BC%E8%87%B4%E2%80%9C500%20%E5%86%85%E9%83%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%94%99%E8%AF%AF%E2%80%9D%EF%BC%8C%E4%BD%86%E6%B2%A1%E6%9C%89%E9%94%99%E8%AF%AF%E6%97%A5%E5%BF%97%E6%9D%A1%E7%9B%AE.png)
我手动设置了一个 apache,并使用此代码添加了第二个 web 目录:
Alias /webs c:\webs
<Directory /webs>
AllowOverride All
</Directory>
但是,该网站中有一个 .htaccess 文件,访问该网站时出现错误:“500 内部服务器错误”,但没有在错误日志文件中写入任何内容。
但是当我删除 .htaccess 文件时,没有出现此错误。
我添加了“AllowOverride All”行并重新启动了服务器,但这并不能纠正错误。
我的.htaccess 是这样的:
RewriteEngine On
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?params=$1 [L,QSA]
<Files "test">
Order Allow,Deny
Allow from all
</Files>
我必须做什么才能使用该目录中的 .htaccess 文件?
答案1
在 Apache Web 服务器中启用 mod_rewrite。也可以尝试以下操作:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?params=$1 [L,QSA]
<Files "test">
Order Allow,Deny
Allow from all
</Files>
</IfModule>
如果启用了 mod_rewrite,则启动重写引擎;否则它不执行任何操作。
答案2
好的,我解决了这个问题,但结果发现还有另外两个问题,我会在这里记录下来,以防对某人有帮助:
在我的php.ini文件,我必须设置:
display_errors = On
这样它就会显示错误(即使我有“error_reporting = E_ALL & ~E_STRICT”)。
然后错误是我试图将 RedBean 与 SQLite 一起使用,并且需要在我的php.ini文件:
extension=php_pdo_sqlite.dll
extension=php_sqlite3.dll