Wordpress 从.htaccess隐藏wp admin和wp-login.php
我的.htaccess文件中有以下内容Wordpress 从.htaccess隐藏wp admin和wp-login.php,wordpress,.htaccess,hide,Wordpress,.htaccess,Hide,我的.htaccess文件中有以下内容 RewriteRule ^(/)?access/?$ /wp-login.php [QSA,L] RewriteRule ^(/)?register/?$ /wplogin?action=register [QSA,L] RewriteRule ^wp-admin$ http://www.mywebsite.com/404.php [R=301,L] RewriteRule ^wp-login
RewriteRule ^(/)?access/?$ /wp-login.php [QSA,L]
RewriteRule ^(/)?register/?$ /wplogin?action=register [QSA,L]
RewriteRule ^wp-admin$ http://www.mywebsite.com/404.php [R=301,L]
RewriteRule ^wp-login\.php$ http://www.mywebsite.com/404.php [R=301,L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !^(.*)admin-ajax\.php
RewriteCond %{HTTP_REFERER} !^(.*)DOMAIN/wp-admin
RewriteCond %{HTTP_REFERER} !^(.*)DOMAIN/wp-login\.php
RewriteCond %{QUERY_STRING} !^KEY
RewriteCond %{QUERY_STRING} !^action=logout
RewriteCond %{QUERY_STRING} !^action=rp
RewriteCond %{QUERY_STRING} !^action=postpass
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^.*wp-admin/?|^.*wp-login\.php/not_found[R,L]
RewriteCond %{QUERY_STRING} ^loggedout=true
RewriteRule ^$/wp-login.php?KEY[R,L]
</IfModule>
问题是我实现了我想要的…用户没有看到可怕的wp-login.php。。。。。。。。。。。。在浏览器中,出于安全原因,我想隐藏wp admin
但是,下面的规则覆盖了上面的内容……一旦我删除最后两行代码中的注释,登录按钮就会转到404页面。我知道这是可能实现我想要的,因为ithemes用他们的插件实现了这一点,但因为它和我的主题存在兼容性问题,我不得不停止使用它,但我希望该功能能够在不阻止www.mywebsite.com/access和www.mywebsite.com/register工作的情况下继续隐藏wp-admin和wp-login.php
关于尝试将这两条规则替换为:
RewriteCond %{THE_REQUEST} \ /+wp-(admin|login)
RewriteRule ^ /404.php [L,R=404]
如果匹配%{the_REQUEST}变量,则只匹配浏览器请求的内容,而不匹配内部重写的内容。也许您应该在.htaccess文件中尝试此代码
RewriteRule ^(/)?access/?$ /wp-login.php [QSA,L]
RewriteRule ^(/)?register/?$ /wplogin?action=register [QSA,L]
RewriteRule ^wp-admin$ http://www.mywebsite.com/404.php [R=301,L]
RewriteRule ^wp-login\.php$ http://www.mywebsite.com/404.php [R=301,L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !^(.*)admin-ajax\.php
RewriteCond %{HTTP_REFERER} !^(.*)DOMAIN/wp-admin
RewriteCond %{HTTP_REFERER} !^(.*)DOMAIN/wp-login\.php
RewriteCond %{QUERY_STRING} !^KEY
RewriteCond %{QUERY_STRING} !^action=logout
RewriteCond %{QUERY_STRING} !^action=rp
RewriteCond %{QUERY_STRING} !^action=postpass
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^.*wp-admin/?|^.*wp-login\.php/not_found[R,L]
RewriteCond %{QUERY_STRING} ^loggedout=true
RewriteRule ^$/wp-login.php?KEY[R,L]
</IfModule>
你的方法起了一些作用,我仍然必须将代码中的wp-login.php更改为/access,这样用户就不会出现404错误。但我仍然有一个问题。。。当用户尝试注销我的网站时,他们会收到404错误,因为注销代码显示“我不知道如何让他们在没有.htaccess抛出404页面的情况下注销”。有人吗?我会很感激的。