我正在使用 cPanel 和 Apache,并且在我的系统中看到以下错误error_log
:
[2011 年 2 月 2 日星期三 09:06:04] [错误] [客户端 110.34.4.242] 服务器配置拒绝客户端:/home/websmart/public_html/.htaccess
我的项目基于 PHP 5.3,使用 zend 框架。我的.htaccess
文件包含:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
谁能告诉我是什么原因导致了这个错误以及我应该如何修改我的.htaccess
文件来解决这个问题?
我的虚拟主机管理器图片
答案1
检查你的选择。你必须
Options +FollowSymLinks
启用每个目录的重写规则。
http://httpd.apache.org/docs/current/mod/mod_rewrite.html#RewriteRule
如果您的服务器级配置允许,您可以将“Options +FollowSymLinks”指令放在同一个 .htaccess 文件中。服务器级配置必须将“AllowOverride”指令设置为“all”,或者必须包含“Options”或“Options=FollowSymLinks”才能允许您执行此操作。请参阅http://httpd.apache.org/docs/current/mod/core.html#allowoverride
因此,至少尝试将其作为您的 .htaccess 文件:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
如果这不起作用,您将需要挖掘服务器配置并修改那里的选项。