我手动设置了一个 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