【发布时间】: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