【问题标题】:htaccess rewrite rule for subdomain results to redirect loop子域结果的 htaccess 重写规则以重定向循环
【发布时间】:2015-02-06 15:04:59
【问题描述】:

下面是我的 htaccess 配置

重写引擎开启 # 如果域以“应用”开头。 # 即 apply.domain.com # 重定向到应用程序 URI RewriteCond %{HTTP_HOST} ^apply\. [NC] RewriteRule !^formwizard /formwizard/apply [R=301,L,NC]

我试过了,当我转到http://apply.domain.com/ 时,它成功重定向到http://apply.domain.com/formwizard/apply。 我的问题是,一旦它重定向到那个 URI,它就会进入一个重定向循环。 谁能帮我看看我的配置有什么问题?

背景: 我有 3 个子域:www.domain.comapply.domain.comadmin.domain.com。它都引用了相同的源代码,只是由我的 htaccess 管理。 一旦此人访问 apply.domain.com,它应该被重定向到 /formwizard/apply 的应用程序页面。

PS。我不想过多依赖后端代码,因为我认为这是服务器配置问题。

提前致谢!

【问题讨论】:

  • 这是唯一的规则还是您有更多的规则没有在这里显示?
  • 我还有其他正在使用的规则,但我在测试此规则之前将它们注释掉。不知何故,只有否定模式才能做到这一点。

标签: .htaccess loops mod-rewrite redirect subdomain


【解决方案1】:

如果有更多规则,则此规则可能会受到它们的影响。将此规则修改为:

RewriteCond %{HTTP_HOST} ^apply\. [NC]
RewriteCond %{THE_REQUEST} !/formwizard/ [NC]
RewriteRule ^ /formwizard/apply [R=301,L,NC]

还要确保这是RewriteEngine On 行下方的第一条规则。

【讨论】:

  • 我已经试过了。奇怪的是它总是进入无限循环。我还添加了 [L] 标志,因此其他规则将被忽略
  • 在根 .htaccess 中仅使用此规则进行测试,并删除子目录中的所有其他 .htaccess。还要在新浏览器中测试或清除浏览器缓存
猜你喜欢
  • 2011-02-16
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多