【发布时间】:2021-04-21 04:13:18
【问题描述】:
我想像这样禁用所有 PHP 复活节彩蛋:
www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
我在.htaccess添加了这段代码:
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]
这适用于http://www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 但不适用于https://www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000,这意味着它适用于http:// 但不适用于https://。
我还在.htaccess 中添加了这个以将所有https:// 重定向到http://:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
但它仍然无法正常工作。仍然可以通过https://www.example.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 访问复活节彩蛋。
我做错了什么?
P.S.:我无权访问 php.ini 来设置它。
【问题讨论】:
-
您是否也无法通过 .htaccess 覆盖 ini 设置?如果不确定,请尝试将其添加到 .htaccess:
php_value expose_php 0 -
@TheoTonge
php_value expose_php 0为我的整个域生成Internal Server Error。 -
听起来你不允许这样做 - 请参阅下面的答案(否则这可能是对你的服务器的限制 - 因为这需要
AllowOverride All添加到你的 apache 配置) -
确保
SSL的VirtualHost条目指向与非SSL 相同的DocumentRoot。 -
@anubhava 我如何检查这个?我可以用
.htaccess强制执行此操作吗?
标签: php apache .htaccess mod-rewrite