Php .htaccess:禁用复活节彩蛋。htaccess无效

Php .htaccess:禁用复活节彩蛋。htaccess无效,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我想禁用所有PHP复活节彩蛋,如下所示: www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 我在.htaccess中添加了此代码: 这适用于http://www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000但不适用于https://www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000表示它适用于http:/

我想禁用所有PHP复活节彩蛋,如下所示:

www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
我在.htaccess中添加了此代码:

这适用于http://www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000但不适用于https://www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000表示它适用于http://但不适用于https://

我在.htaccess中另外添加了此选项,以将所有https://重定向到http://:

但它仍然不起作用。复活节彩蛋仍然可以从https://www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

我做错了什么

注意:我没有权限在那里设置php.ini。

重写引擎必须在任何规则之前启动

列出的任何条件都适用于下一条规则。 通过向规则添加L标志,可以防止它检查更多规则

从文档中:

[L]标志导致mod_rewrite停止处理规则集。在大多数上下文中,这意味着如果规则匹配,则不会处理进一步的规则。这对应于Perl中的最后一个命令,或C中的break命令。使用此标志指示应立即应用当前规则,而不考虑进一步的规则。

所以试试这个:

RewriteEngine On
RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F,L]
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

你需要一个相等的字符在这里。。。STRING}=PHP…应该可以正常工作。d:o

这是更大的图景

### If mod_rewrite is true...
<IfModule mod_rewrite.c>
### Prevent Apache from showing its server signature...
ServerSignature off
### Prevent phpinfo from showing details...
RewriteCond %{QUERY_STRING} =PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC] RewriteRule .* - [F]
</IfModule>

…粘贴到.htaccess文件中。相等字符前面的空格}=PHP,后面没有空格很重要。d:o

您是否也无法通过.htaccess覆盖ini设置?如果不确定,请尝试将其添加到.htaccess:php\u value expose\u php0@TheoTongephp\u value expose\u php 0会对我的整个域产生内部服务器错误。听起来你不允许这样做-请参阅下面的答案,否则这可能是对你的服务器的限制-因为这需要允许所有添加到apache配置中的内容。请确保SSL的VirtualHost项指向与非SSL项相同的DocumentRoot。@anubhava如何检查?我可以用.htaccess强制这样做吗?抱歉,我没有完全阅读/理解您的问题-我现在已经更正了我的答案,希望这能为您解决问题!谢谢,但遗憾的是还是一样,不起作用。前面的空格是相等的,后面的空格是不存在的。整个字符串应该是。。。
RewriteEngine On
RewriteCond %{QUERY_STRING} PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F,L]
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
### If mod_rewrite is true...
<IfModule mod_rewrite.c>
### Prevent Apache from showing its server signature...
ServerSignature off
### Prevent phpinfo from showing details...
RewriteCond %{QUERY_STRING} =PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC] RewriteRule .* - [F]
</IfModule>