【问题标题】:.htaccess: disable easter eggs over .htaccess doesn't work.htaccess:通过 .htaccess 禁用复活节彩蛋不起作用
【发布时间】: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 配置)
  • 确保SSLVirtualHost 条目指向与非SSL 相同的DocumentRoot
  • @anubhava 我如何检查这个?我可以用.htaccess 强制执行此操作吗?

标签: php apache .htaccess mod-rewrite


【解决方案1】:

RewriteEngine on 必须出现在任何规则之前。

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

来自文档:

[L] 标志导致 mod_rewrite 停止处理规则集。在大多数情况下,这意味着如果规则匹配,则不会处理更多规则。这对应于 Perl 中的最后一条命令,或 C 中的 break 命令。使用此标志指示应立即应用当前规则而不考虑进一步的规则。 https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_l

所以试试这个:

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]

【讨论】:

  • 抱歉,我没有完全阅读/理解您的问题 - 我现在已经更正了我的答案,希望这能解决您的问题!
  • 谢谢,但不幸的是还是一样,不工作。
【解决方案2】:

这里需要一个等号字符... STRING} =PHP ...应该可以正常工作。 d:o)

【讨论】:

  • 等号前的空格和事后没有空格。整个字符串应该是...
【解决方案3】:

这是更大的图景......

### 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)

【讨论】:

    猜你喜欢
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 2017-03-04
    • 2018-03-11
    相关资源
    最近更新 更多