【问题标题】:"order deny,allow" only works when after rewrite rules?“命令拒绝,允许”仅在重写规则后才有效?
【发布时间】:2015-09-07 23:44:09
【问题描述】:

我有一个 wordpress 网站我想暂时阻止访问并将 order deny,allow 添加到 .htaccess 文件中:

RewriteEngine off
order deny,allow
deny from all
allow from [my ip]

# 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

但是,它没有用。

我尝试将其移至重写规则之下:

# 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

RewriteEngine off
order deny,allow
deny from all
allow from [my ip]

并且开始工作了。

为什么它在第一个示例中不起作用?

【问题讨论】:

  • 究竟有什么作用?我尝试了两者,并且在阻止访问的情况下都可以正常工作。但是,如果您在将 RewriteEngine off 设置为 on 后设置它,则不会发生重写。
  • @martinczerwi 在第一个示例中,每个人仍然可以访问该站点。在第二个示例中,除我自己以外的所有人都被拒绝访问,但是正如您所提到的,重写对我不起作用,因此我无法访问我网站上的大多数页面。
  • 您可以删除RewriteEngine off,作为快速修复
  • 您的台式机是 Windows 还是 MacOS/Linux?其次是服务器 Linux 还是 Windows?我想你的 Apache 版本是 2.2?
  • 请看2.4阻止访问的方式,2.2以后变了:httpd.apache.org/docs/2.4/howto/access.html

标签: wordpress .htaccess mod-rewrite


【解决方案1】:

在 Wordpress htaccess 中,这个 cmets:

# BEGIN WordPress
# END WordPress

Wordpress 使用它来动态添加附加规则。如果你查看wp-admin/includes/misc.php,有一个名为save_mod_rewrite_rules 的函数处理你的htaccess 的写入。在这个函数中,规则是从位于wp-includes/rewrite.php 的类WP_Rewritemod_rewrite_rules 方法中获取的。如果您查看该方法,您将在末尾看到该行:

$rules = apply_filters( 'mod_rewrite_rules', $rules );

这意味着在规则上应用了过滤器,因此任何插件/主题都可以覆盖此规则以添加自己的规则,从而添加访问策略。也许 WP 核心添加了他自己的拒绝/允许规则。所以也许这是你的问题。

allow, deny 规则的替代解决方案是使用RewriteCond 为除您之外的所有 IP 抛出 403(将其放在 htaccess 的顶部):

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REMOTE_ADDR} !^[your IP]$
    RewriteRule ^(.*)$ - [R=403,L]
</IfModule>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    相关资源
    最近更新 更多