【问题标题】:Redirecting subsite URLs to main site via .htaccess通过 .htaccess 将子站点 URL 重定向到主站点
【发布时间】:2022-01-13 14:17:37
【问题描述】:

我已在子目录中安装了 WordPress Multisite。

最近我发现我的团队可以一起工作而不是单独工作,所以我决定从多站点迁移到单站点设置。

在我迈出第一步之前,我需要得到一些答案。

我的主站点和子站点使用 www.,我的 .htaccess 文件中有此代码:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^myysite.com 
RewriteRule (.*) https://www.myysite.com/$1 [R=301,L]

将所有非 www 访问重定向到 www 版本。

如果我像这样修改上面的代码:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^myysite.com/bd/$1 
RewriteRule (.*) https://www.myysite.com/$1 [R=301,L]

此代码会使我的子站点的 URL 成为主站点的 URL 吗?在搜索引擎上索引了大约 100 多个页面,所以我只想保留从子站点到主站点的已建立链接。像这样:

  • 子站点:https://www.myysite.com/bd/post-names/(bd 是我的子站点)
  • 主站:https://www.myysite.com/post-names/

另外,子站点的导出文件导入到主站点会不会出现附件错误?我的意思是我必须手动更改这些链接吗?

【问题讨论】:

    标签: wordpress .htaccess multisite


    【解决方案1】:

    您的条件RewriteCond %{HTTP_HOST} ^myysite.com/bd/$1 是错误的。您只能使用 %{HTTP_HOST} 测试主机头。 /bd/$1%{REQUEST_URI} 的一部分。你需要一个单独的条件来检查它。

    试试:

    RewriteEngine on
    
    #/bd/foobar to /foobar
    RewriteCond %{HTTP_HOST} ^(www\.)?myysite\.com$
    RewriteCond %{REQUEST_URI} ^/bd/(.*)$ 
    RewriteRule (.*) https://www.myysite.com/%1 [R=301,L]
    
    #redirect non-www to www
    RewriteCond %{HTTP_HOST} ^myysite\.com$ 
    RewriteRule (.*) https://www.myysite.com/$1 [R=301,L]
    

    【讨论】:

    • 感谢您的建议。我的一个朋友给我这个代码RewriteEngine on RewriteCond %{HTTP_HOST} ^tvhex.com RewriteRule (.*) https://www.tvhex.com/$1 [R=301,L] Options +FollowSymLinks RewriteEngine On RewriteRule ^bd/(.*)$ https://www.tvhex.com/$1 [R=301,L] 它似乎工作。我应该保留它还是和你一起改变?顺便说一句,我也有这个代码来添加斜线# add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] 我应该全部保留吗?还是有办法合并?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 2015-09-12
    • 2015-05-30
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多