mod-rewrite规则有效,但没有来自文件的输出

时间:2014-12-07 00:16:47

标签: regex apache .htaccess mod-rewrite

事先感谢,这是一个奇怪的问题,但可能是一些内部处理我不明白... 规则和条件按预期工作,除了一个小问题....它似乎是在文件不为空时返回一个空文件... 在光明的一面,我得到了日志工作,并开始对这些非常神秘的代码有所了解(谢谢apache先生,当然还有apache.org,以及那些想要在那里测试regex的人:regex101.com) 这是我的日志文件:

[Sat Dec 06 19:04:49.939312 2014] [rewrite:trace1] [pid 5918] mod_rewrite.c(468): [client 192.168.1.100:55227] 192.168.1.100 - - [webtypography.dev/sid#7fdcea80dd68][rid#7fdcea7de0a0/initial] [perdir /var/www/webtypography.dev/public_html/] pass through /var/www/webtypography.dev/public_html/toc.php

这是我的.htaccess文件:

Options +FollowSymLinks -MultiViews 
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^webtypography\.dev$ [NC]
RewriteRule   ^(.*)\/$  $1.php [R=301,L]

更多信息:我的意图是如果你输入包含目录的网址:/directory/它被重写为directory.php并附加到基本网址....除了大空白浏览器视口......

[Sat Dec 06 19:04:49.939265 2014] [rewrite:trace3] [pid 5918] mod_rewrite.c(468): [client 192.168.1.100:55227] 192.168.1.100 - - [webtypography.dev/sid#7fdcea80dd68][rid#7fdcea7de0a0/initial] [perdir /var/www/webtypography.dev/public_html/] strip per-dir prefix: /var/www/webtypography.dev/public_html/toc.php -> toc.php
[Sat Dec 06 19:04:49.939301 2014] [rewrite:trace3] [pid 5918] mod_rewrite.c(468): [client 192.168.1.100:55227] 192.168.1.100 - - [webtypography.dev/sid#7fdcea80dd68][rid#7fdcea7de0a0/initial] [perdir /var/www/webtypography.dev/public_html/] applying pattern '^(.*)\\/$' to uri 'toc.php'
[Sat Dec 06 19:04:49.939312 2014] [rewrite:trace1] [pid 5918] mod_rewrite.c(468): [client 192.168.1.100:55227] 192.168.1.100 - - [webtypography.dev/sid#7fdcea80dd68][rid#7fdcea7de0a0/initial] [perdir /var/www/webtypography.dev/public_html/] pass through /var/www/webtypography.dev/public_html/toc.php

这些是我的虚拟日志中该事务的唯一条目(我为这个虚拟主机创建了一个单独的日志......)这也不是一个生产服务器,但我要看一下php.ini和php错误日志....我不允许发表评论所以我必须在这里做这个吗?

php.ini是display_errors已关闭! 现在我得到了我需要的错误......感谢尼尔!请允许我检查这些错误,它们很容易修复,我怎么能给你任何功劳呢?

1 个答案:

答案 0 :(得分:0)

如果PHP或Apache产生空输出,这几乎总是由Apache配置中的错误引起,包括.htaccess文件,或者在display_errors被禁用的PHP中错误(因为它应该很好在生产站点上 - 您永远不想向可能的攻击者显示服务器内部。)

第一站应该是Apache的vhost错误日志,因为它们将包含来自所有这些来源的错误。

相关问题