【发布时间】:2015-09-08 17:13:45
【问题描述】:
我需要设置一些重定向来执行一些规则并处理一些 URL 更改。
具体如下:
- 如果协议是
http,则强制执行https - 如果没有子域或者子域不是
www,则强制执行www - 如果域是
www.domainA.com,并且路径不是开始以/en/、/fr/、/de/或/es/,则强制执行/en/ - 如果域是
www.domainB.com并且路径不是开始以/b_en/、/b_fr/、/b_de/或/b_es/,则强制执行/b_en/
我一直在努力使这项工作正常进行,以便在任何时候都只发生一个 301,而我们最终不会出现一连串的 301。例如,对http://domainA.com 的请求可能会被重定向 3 次:
-
http://domainA.com301 转... -
https://domainA.com301 转... -
https://www.domainA.com301 转... https://www.domainA.com/en/
但是我无法找到解决方案。
这将存在于.htaccess 文件中。
【问题讨论】:
-
只有 domainA 和 domainB 可以用于这个 htaccess 吗?因为更容易测试www或者没有子域,用域名...
-
是的,这个特定的用例需要对我上面的要求列表中的第 3 点和第 4 点进行特定处理。
-
我明白这一点。但是 1 和 2 仅具有相同且仅 2 个域?
-
是的,要求 #1 和 #2 对两个域都是通用的,总共只有两个域。
-
是的,但理想情况下也包括路径,否则我们最终会得到超过 1 个重定向
标签: apache .htaccess redirect http-status-code-301