【问题标题】:Redirecting subdomain to file without hardcoding url将子域重定向到文件而不对 URL 进行硬编码
【发布时间】:2013-05-13 06:49:04
【问题描述】:

实际上主题很简单,回答了数百万次,但不知何故对我不起作用。 我尝试做的是将“m.domain.com”和“mob.domain.com”重定向到文件“domain.com/folder/mobile.htm” 但看起来任何代码都与我当前的代码冲突,从一开始就删除了“www”。

我当前的代码是

Options +FollowSymLinks
RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.
    RewriteCond %{HTTPS}s ^on(s)|off
    RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$
        RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]

# this is for webmail forward #
RewriteCond %{REQUEST_URI} /mail/?$ [NC]
RewriteRule . /webmail/ [L]

如何重定向 m 和 mob 域而不与此代码冲突且不硬编码“domain.com”?

提前感谢您的帮助。

【问题讨论】:

  • 我的问题,我不熟悉 htaccess 编码。我使用的当前代码也可以通过搜索找到。测试后,我开始使用。欢迎提出任何建议。

标签: apache .htaccess redirect subdomain


【解决方案1】:

将此规则置于您现有规则的下方RewriteEngine On 行:

RewriteCond %{HTTPS}s on(s)|
RewriteCond %{HTTP_HOST} ^(?:m|mob)\.(.+)$ [NC]
RewriteRule ^$ http%1://%2/folder/mobile.htm [L,R=301]

【讨论】:

  • 感谢您的回复,但我需要在不对域进行硬编码的情况下解决问题。就像我的例子一样。我用一些被阻止的 IP 更新更新了许多位置。这就是我在问题中提到的为什么无法进行编码的原因。
  • 没用 :( 我认为我的问题是其他问题。它给出了错误“ERR_NAME_NOT_RESOLVED”我尝试了不同的组合来确定,但是,不......实际上我没有像 m 或这样的子域暴徒。我只是想模拟它,但似乎我无法用 htaccess 覆盖它。或者我想错了。我想听听你的意见。我做错了什么???
  • 好的,如果主机名无效,那么它不是真正的 mod_rewrite 问题。对于模拟,您需要在 /etc/hosts/ 文件中创建那些假主机条目,然后尝试这些规则。
  • 所以只用 htaccess 模拟是不可能的……好吧,我明白了。现在我明白了我的问题。感谢您的回复。
猜你喜欢
  • 2015-12-01
  • 1970-01-01
  • 2017-02-02
  • 2014-05-10
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
  • 2012-12-03
相关资源
最近更新 更多