php – Apache2:400错误请求和重写规则,错误日志中没有任何内容?

前端之家收集整理的这篇文章主要介绍了php – Apache2:400错误请求和重写规则,错误日志中没有任何内容?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这让我疯了.

背景:我正在使用内置的Apache2& amp; Mac OS X 10.6附带的PHP

我有一个vhost设置如下:

NameVirtualHost *:81

<Directory "/Users/neezer/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:81>
    ServerName lobster.dev
    ServerAlias *.lobster.dev
    DocumentRoot /Users/neezer/Sites/lobster/www

    RewriteEngine On
    RewriteCond $1 !^(index\.PHP|resources|robots\.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$index.PHP/$1 [L,QSA]

    LogLevel debug
    ErrorLog /private/var/log/apache2/lobster_error
</VirtualHost>

这是在/private/etc/apache2/users/neezer.conf中.

我在龙虾项目中的代码是带有CodeIgniter frameworkPHP.试图加载http://lobster.dev:81/给了我:

400 Bad Request

通常情况下,我会检查我的日志,看看它是什么造成的,但我的日志是空的!我查看了/ private / var / log / apache2 / error_log和/ private / var / log / apache2 / lobster_error,并且都没有记录任何与400相关的消息.我将LogLevel设置为调试/ private / etc / apache2 / http.conf的.

删除重写规则可以消除错误,但这些相同的规则适用于我的MAMP主机.我已经进行了双重检查,并在我的默认Apache安装中加载了rewrite_module.我的http.conf可以在这里找到:https://gist.github.com/1057091

是什么赋予了?如果您需要任何其他信息,请与我们联系.

注意:我不想将重写规则添加到项目目录中的.htaccess(它被检入git仓库并且我不想触摸它).

对于复杂的mod_rewrite规则,记录事件序列以查看发生的情况是个好主意.使用 RewriteLog执行此操作,并启动 RewriteLogLevel以查看详细信息.

mod_rewrite非常灵活,可以使用重写规则做很多事情,而且也非常复杂.如果没有看到更广泛的上下文,局外人就无法调试规则.您可以自己调试它最好的事情.在第二个窗口中尝试配置更改时,在一个窗口中查看日志.进行一些小改动,保存文件,重新加载apache并再次点击URL.重复.

以下是Apache manual对RewriteLog的一个很好的描述:

Rewrite Log

When using the powerful and complex features of mod_rewrite,it is almost always necessary to use the RewriteLog to help in debugging. This log file produces a detailed analysis of how the rewriting engine transforms requests. The level of detail is controlled by the RewriteLogLevel directive.

原文链接:https://www.f2er.com/php/139254.html

猜你在找的PHP相关文章