【问题标题】:redirect different url with the same subfolder使用相同的子文件夹重定向不同的 url
【发布时间】:2020-07-22 14:48:53
【问题描述】:

我在一个 wordpress 多站点上。

我有具有相同子文件夹名称的旧网址,现在我必须将旧网址重定向到具有新子文件夹名称的新网址。

示例(会更简单)

旧网址 1 到新网址 1:

http://site1.fr/fr-chauffage.html https://www.site1.fr/installation_chauffage

旧网址 2 到新网址 2:

http://site2.fr/fr-chauffage.htmlhttps://www.site2.fr/installateur_chauffage_dans_ma_region

所以我写了下面的htaccess文件

RewriteCond %{HTTP_HOST} ^site1\.fr
RewriteRule ^/?(.*)$ https://www.site1.fr/$1 [R=301,L]
RewriteRule ^fr\.html$ / [R=301,L]
RewriteRule ^fr-chauffage.html$ /installation_chauffage/ [R=301,NC,L]
 
RewriteCond %{HTTP_HOST} ^site2\.fr
RewriteRule ^/?(.*)$ https://www.site2.fr/$1 [R=301,L]
RewriteRule ^fr\.html$ / [R=301,L]
RewriteRule ^fr-chauffage.html$ /installateur_chauffage_dans_ma_region/ [R=301,NC,L]

问题在于用户总是重定向到 site1 + good_subfolder 的网站

如果我有 3 个具有相同子文件夹名称的网站,用户将始终被重定向到新网址的 site1 + good_subfolder ...

【问题讨论】:

  • 这里解析了多少个不同的域?如果您将所有域重定向到 www 并且不使用其他子域,那么您不需要明确列出域(正如我在回答中所做的那样)以重定向到 www

标签: .htaccess redirect multisite


【解决方案1】:

问题在于用户总是重定向到 site1 + good_subfolder 的网站

因为RewriteCond 指令仅适用于随后的第一个RewriteRule。随后的两个RewriteRule 指令正在执行无条件

您需要在需要应用的所有规则中重复该条件。

你的指令也有错误的顺序 - 你需要先有更具体的规则,否则你会得到多个重定向。目前,您在第一条规则中重定向一切。然后你有一个更具体的重定向。

那么,所有传入的请求是否少于www 前缀(如您的示例和指令中所建议的那样)?

请尝试以下方法:

# Common rules for both sites
# (Although this will result in 2 redirects if requesting the non-canonical hostname)
RewriteRule ^fr\.html$ / [R=301,L]

# Site 1 rdirects
RewriteCond %{HTTP_HOST} ^(www\.)?site1\.fr [NC]
RewriteRule ^fr-chauffage.html$ https://www.site1.fr/installation_chauffage/ [R=301,NC,L]

# Site 2 rdirects
RewriteCond %{HTTP_HOST} ^(www\.)?site2\.fr [NC]
RewriteRule ^fr-chauffage.html$ https://www.site2.fr/installateur_chauffage_dans_ma_region/ [R=301,NC,L]

# non-www to www redirect - both sites
RewriteCond %{HTTP_HOST} ^(site1\.fr|site2\.fr) [NC]
RewriteRule (.*) https://www.%{HTTP_HOST}/$1 [R=301,L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 2018-03-08
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多