使用htaccess来掩盖wp-admin文件夹

时间:2013-04-06 09:11:49

标签: wordpress .htaccess mod-rewrite

同样的问题:Use htaccess to mask folder name

但答案不起作用。我的.htaccess文件看起来像:

# 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

RewriteCond %{THE_REQUEST} ^GET\ /wp-admin/
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [R,L]
RewriteRule ^dashboard(.*)$ wp-admin$1

我总是得到:

  

该页面未正确重定向

     

Firefox检测到服务器正在重定向请求   这个地址永远不会完成。

dashboard - wp-admin它似乎相互重定向;我只想显示mysite.com/dashboard,但内容必须是mysite.com/wp-admin,我使用的是wordpress 3.5.1。这是可能的,不是吗?我在服务器方面并不擅长;所以请帮忙;

感谢。

2 个答案:

答案 0 :(得分:4)

我不确定您为什么在浏览器上收到页面未正确重定向错误,但如果/dashboard目录实际上不存在,那么这些请求将通过index.php(wordpress)进行路由。您应该尝试交换规则的顺序,以便在路由之前重定向发生

RewriteBase /
RewriteCond %{THE_REQUEST} ^GET\ /wp-admin/
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [R,L]
RewriteRule ^dashboard(.*)$ wp-admin$1

# 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

这样,当您请求http://mysite.com/dashboard时,将应用第二条规则而不是RewriteRule . /index.php规则。

答案 1 :(得分:0)

这可能是您的网页未正确重定向的原因:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

尝试使用以下指令更改整个.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c> 
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
#Where the
#suspected
#code located
</IfModule>

# END WordPress

#HERE
RewriteRule ^wp-admin/?$ /dashboard [R,L]
RewriteRule ^wp-admin/(.*)/?$ /dashboard/$1 [R,L]
RewriteRule ^dashboard/?$ /wp-admin
RewriteRule ^dashboard/(.*)$ /wp-admin/$1

如果无效,请尝试使用#HERE更改评论RewriteEngine on