【问题标题】:How do I create a subdomain and then have it forward to a subfolder?如何创建子域,然后将其转发到子文件夹?
【发布时间】:2013-04-01 20:47:51
【问题描述】:

假设我有网站 blog.mydomain.com 和 www.mydomain.com。我想确保如果人们输入 blog.mydomain.com,它将重定向到 www.mydomain.com/blog。 (我知道这个问题通常是反过来问的……)

我发现并编辑了以下内容:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^blog.mydomain.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/blog/$1 [R=301,L]

这是正确的吗? 并且:我是否需要在我的 DNS 中创建记录来创建子域? (因为这个 .htaccess 内容当然是在常规域上,而不是在 blog.mydomain.com 上..)

【问题讨论】:

  • 您不需要为此的 dns 条目,您所拥有的应该可以工作。如果不进行测试,我无法保证,因为 Apache ReWrite 很快就会变得一团糟。
  • @Scott:谢谢。我将尝试 Bob 的建议,不会为其创建 dns 条目。
  • 您的重写代码应该按原样工作,无需任何修改,但是您应该使用RewriteCond %{HTTP_HOST} ^blog\.mydomain\.com$ [NC] 进行RewriteCond。

标签: .htaccess subdomain


【解决方案1】:

这应该可以解决问题

RewriteCond %{HTTP_HOST} ^blog\.mydomain\.com
RewriteRule ^(.*)$ http://mydomain.com/blog/$1 [R=301]

【讨论】:

  • 这和玛拉基已经废掉的有什么区别?我看到 OP 已包含 [R=301,L](L 告诉 Web 服务器停止处理此文件中的重写)。
  • 我喜欢逃避 .在 RewriteCond 行中,L 似乎是一个宗教问题! :)
  • 很公平。逃避是有道理的。你绝对正确,“L”总是引起比应得的更多的争论。
  • 谢谢,鲍勃.. 我要试试那个。 (是的,我知道这几乎是一样的......只是有点不同)
  • 为什么不^blog\.mydomain\.com$ [NC]
猜你喜欢
  • 2013-05-28
  • 1970-01-01
  • 2013-10-01
  • 2011-11-16
  • 2015-09-01
  • 1970-01-01
  • 2015-03-26
  • 2013-08-21
  • 1970-01-01
相关资源
最近更新 更多