问题不是一个持久的问题; 它有时会发生,我无法重新创build它(即使使用相同的url)。
[Tue Dec 20 09:07:12 2011] [error] [client 66.249.66.169](20025)给定的path包含通配符:访问/?p = 2463失败
[Tue Dec 20 10:10:30 2011] [error] [client 110.0.107.198](20025)给定path包含通配符:访问/proxyimages.php?url=http%3A%2F%2Fi.imgur.com %2F2DKZ0.jpg&mimeType =图片%2Fjpeg失败
我正在使用一个WordPress的博客进行了一些修改,自从一段时间以来,我已经从Apache获得了很多这些错误,谷歌结果这个问题是没有用的…
有任何想法吗?
编辑:
一些虚拟主机只与干净的httpd.conf不同
<VirtualHost *:80> DocumentRoot C:/xampp/htdocs/ ServerName 94.102.49.102 </VirtualHost> <VirtualHost *:80> DocumentRoot C:/xampp/htdocs/site1 ServerName www.site1.com ServerAlias site1.com *.site1.com </VirtualHost> <VirtualHost *:80> DocumentRoot C:/xampp/htdocs/site2 ServerName www.site2.info ServerAlias site2.info *.site2.info </VirtualHost> <VirtualHost *:80> DocumentRoot C:/xampp/htdocs/site3 ServerName www.site3.com ServerAlias site3.com *.site3.com </VirtualHost>
和wordpress生成的.htaccess
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
问题是有一个字符被插入到需要转义或删除的URL中。 某些规则在apache某处放置那个字符。 您必须考虑任何重写规则或AliasMatch规则。
复制你现有的httpd.conf文件,并把vanilla conf放在它的位置。 看看问题是否存在。 对这两个文件进行diff ,然后逐个添加块,然后testing您的服务器。 如果您使用mod_alias ,请禁用该function并查看问题是否仍然存在。 也可能是在某处.htaccess文件中inheritance了一些麻烦的正则expression式。 检查那些,并排除在那里的可能性。
一旦你缩小了这个问题,你可以回报,我们可以有更多的帮助。
这听起来像是一个应用程序错误。 这可能是你的一个WordPress插件的东西。 这些错误表明,某些东西正在将未转义的字符扔到您的url中。 也许是一个decodeURI函数。 主要关心的是任何正在发生的重写操作,都会导致Web服务器文档根目录之外的文件和文档。
禁用wordpress安装中的所有插件并检查错误。 将它们重新添加回来,看看错误何时重现。
你的.htaccess文件的第五行看起来很有趣。 另外,AFAIK,它不是WordPress的默认永久链接重写规则集的一部分。 尝试删除(或只是注释掉)该行。 这是我正在谈论的那个:
RewriteRule ^index\.php$ - [L]
而且,因为这是一条规则,其余的则在这条规则被处理之后被推迟,所以把它们放在那里是没有意义的。 请删除它,让我们知道结果