尝试访问WordPress的子目录时重定向到首页

时间:2018-07-30 08:35:16

标签: wordpress redirect

我已将WordPress安装在子目录(例如:http://example.com/wp/)上,并使用此方法使网站不出现在子目录中: https://websavers.ca/make-wordpress-not-appear-like-subfolder

它工作正常,但是现在我想创建一个从/ wp子目录到主页的重定向。现在,当我导航到http://example.com/wp/时,出现404错误页面。 我的目标是,当有人尝试访问http://example.com/wp/时,他将被重定向到http://example.com/

在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

最好不要在WordPress中使用这些子域重定向规则:

  1. 当您使用错误的域名或子域访问它时,WordPress可能无法正确加载,因为典型的WordPress安装被设置为针对特定的域或子域运行。

  2. 即使您能够使其工作,在每次重定向之前WordPress都会先加载自身,然后进行重定向,然后在重定向URL到达服务器时再次加载。这是一个缓慢的过程。

请在.htaccess中执行此操作。如下所示:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# custom rules for subdomain matching
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$ [NC]
RewriteRule . http://example.com/%1 [R=301,L]

# default WordPress rules
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

这会将所有sub.example.com重定向到example.com/sub。

  

注意:以上代码还会将www.example.com重定向到   example.com/www。如果您不想这样做,请修改上面的#   子域匹配的自定义规则部分,如下所示:

# to redirect www.example.com/* to example.com/*
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ "http://example.com/$1" [R=301,L]
# custom rules for subdomain matching
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$ [NC]
RewriteRule . http://example.com/%1 [R=301,L]

阅读此文档。进一步了解apache mod_rewrite

还要确保您服务器中的mod_rewrite is enabled for .htaccess