我已将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/
在此先感谢您的帮助!
答案 0 :(得分:0)
最好不要在WordPress中使用这些子域重定向规则:
当您使用错误的域名或子域访问它时,WordPress可能无法正确加载,因为典型的WordPress安装被设置为针对特定的域或子域运行。
即使您能够使其工作,在每次重定向之前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。