我有一个运行WordPress的站点,在监听端口80( www.example.com )的虚拟主机中定义。
我想阻止访问/ wp-admin和wp-login.php的用户,但是当他们查看不同的端口(如www.example.com:8080/wp-admin或www.example.com:8080/wp-login.php
我添加了一些RewriteRules来显示一个404错误页面,当他们点击80端口的站点,并创build一个新的虚拟主机,同样的网站,在端口8080监听,如下所示:
<VirtualHost 192.168.3.20:80> Options -Indexes +FollowSymlinks RewriteEngine on RewriteRule ^/wp-login.php /wp-content/themes/404.html [R=404,NC] RewriteRule ^/wp-admin$ /wp-content/themes/404.html [R=404,NC] DocumentRoot /var/www/html/wordpress ServerName www.example.com </VirtualHost> <VirtualHost 192.168.3.20:8080> DocumentRoot /var/www/html/wordpress ServerName www.example.com </VirtualHost>
当访问/ wp-admin和wp-login.php时,它很好的显示错误404。 当通过www.example.com:8080/wp-admin或www.example.com:8080/wp-login.php访问时,它会按照预期显示login页面,但在input凭证并按Enter键继续之后,将显示我在80端口为虚拟主机声明的错误404页面,这是我不想要的,经过很多testing,我无法避免它。
有没有人有如何解决它的想法? 也许我正在尝试一个错误的方法呢?
我很抱歉地说,我担心你所尝试的不可能与WordPress。 在您的网站设置中,您定义了您的WordPress所在的URL – http://www.domain.com/ 。 符合W3C规范的WordPress始终使用其设置中提供的完整主机名来实现其redirect,因此,当您login并validation您的凭据时,它会将您redirect到http://www.domain.com/wp -admin ,无论你是在端口80,端口8080还是端口56348进来。当我尝试在另一个端口上设置我的WP博客的精确镜像来testing主题和插件开发时,我自己遇到了同样的问题。
要为您的网站的pipe理页面添加额外的安全性,您可以尝试几件事情: