2014-12-07 36 views
0

在此先感谢,这是一个奇怪的问题,但可能是一些内部处理,我不明白... 规则和条件按预期工作,除了一个小问题....它似乎是当文件不是空的时候返回一个空文件... 在光明的一面,我得到了日志工作,并开始有一个关于非常神秘的代码的线索(谢谢你先生阿帕奇当然apache.org的,并为那些谁想要测试有正则表达式: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] 

多一点信息:我的意图是,如果你在其中包括一个目录的URL类型:/directory/它被改写为directory.php和附加在基本的URL ....除了大片空白浏览器窗口的伟大工程。 ..

[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 is display_errors was off! 现在我得到了我需要的错误......谢谢尼尔!请允许我检查这些错误,他们很容易解决,我怎么能给你任何信用?

+0

由于PHP或Apache错误导致空输出时间为99.999999%,其中'display_errors = no'与生产时应该一样。检查您的虚拟主机的Apache错误日志。 – 2014-12-07 00:19:31

+0

99.999999%的信贷去尼尔斯,我仍然必须解决这个问题... :) – Bill 2014-12-07 00:41:17

+0

我会让它成为一个答案,所以你可以接受它:) – 2014-12-07 00:42:00

回答

0

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

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