【问题标题】:no-www url for sub-directory/sub-domain子目录/子域的无 www url
【发布时间】:2013-11-15 23:14:09
【问题描述】:

假设我的域是http://www.domain.com,我想重定向到无www url (http://domain.com),因为我在.htaccess 中使用了这个代码

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

工作正常 http://www.domain.com 重定向到 http://domain.com

现在我有一个子域 http://www.blog.domain.com (public_html/blog) 被重定向到 no-www url http://blog.domain.com,因为我使用了这个代码。

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

但是 www 也没有在子域 url 中删除。我在这里做错了什么?

更新:我的托管服务提供商是 hostgator

【问题讨论】:

  • 您的第一条规则对于子域也应该足够了。 www.blog.domain.com 是否使用与 domain.com 相同的 DOCUMENT_ROOT?是否为www.blog.domain.com 安装了 CMS 框架?
  • 1) 是的,www.blog.domain.com 使用相同的 DOCUMENT_ROOT 2. 是的,在 public_html/blog 中安装了 wordpress CMS
  • 哦好的 WP 在那里所以http://blog.domain.com 应该使用 DOCUMENT_ROOT 作为/public_html/blog 对吗?
  • 完全正确/public_html/blog
  • 好的,我在下面提供了答案。

标签: php regex apache .htaccess mod-rewrite


【解决方案1】:

第 1 步:

/public_html/blog 内部似乎也有一个 WP .htaccess。在您的/public_html/blog/.htaccess:在WP 规则之前添加此规则

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

第 2 步:

然后在 WP permalink settings 中将您的博客地址更改为:

http://blog.domain.com

【讨论】:

  • 哈哈,在我更改了wp_options 表中的网址(site urlhome)之后,它成功了。从昨天开始,我正在使用 .htaccess 进行此操作...非常感谢。
  • 你能帮我解决这个问题吗:stackoverflow.com/questions/70626700/…
猜你喜欢
  • 2012-04-01
  • 2018-04-24
  • 1970-01-01
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多