将example.com/wp-login.php和example.com/wp-admin重定向到子目录?

时间:2019-04-05 20:34:53

标签: apache .htaccess redirect

我们只是将WordPress移至其自己的目录,但是该组织中的很多人都将example.com/wp-login.php和example.com/wp-admin/加为书签。

我的htaccess文件中具有以下重定向,这些重定向在本地有效,但不适用于我的暂存(AWS)环境。

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /
  RewriteRule ^/wp-login.php?$ /wordpress/wp-login.php [R,L]
  RewriteRule ^/wp-admin/(.*)$ /wordpress/wp-admin/$1 [R,L]
</IfModule>

# 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>

如果我转到我的登台站点staging.example.com/wp-login.php,则会看到404页面。

也许我只是不了解重写角色,但是第一个块应该与example.com/wp-login.php匹配,并将其重定向到新的子目录,但不,在wp-login.php上只有404s

我们正在使用清漆,这可能是清漆的原因吗?

1 个答案:

答案 0 :(得分:0)

如果您的规则位于htaccess文件中,则需要在RewriteRule指令中使用相对路径(以无斜杠开头)。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^wp-login.php?$ /wordpress/wp-login.php [R,L]
RewriteRule ^wp-admin/(.*)$ /wordpress/wp-admin/$1 [R,L]
</IfModule>