【问题标题】:RewriteCond redirect to subdomain not working [closed]RewriteCond 重定向到子域不起作用[关闭]
【发布时间】:2012-02-19 16:47:24
【问题描述】:

我无法制定将网页重定向到子域的规则:

如果网址以/tag 开头,如下所示:

http://www.my-website.com/tag/music

它应该被重定向到:

http://blog.my-website.com/tag/music

我试过了:

RewriteCond %{HTTP_HOST} ^www\.my-website\.com$ [NC]
RewriteRule ^/tag/?(.*)$ http://blog.my-website.fr/tag/$1 [QSA,L,R=301]

但它没有重定向.. 它停留在 www.

我做错了什么?

谢谢

【问题讨论】:

  • @casperOne 为什么关闭了? O_O S.O. 上有超过 5000 个关于 RewriteCond 的问题
  • 这些问题在 ServerFault 上处理。至于其他人,没有任何问题是开放的,是任何其他问题开放的理由。根据常见问题解答,此问题不在主题范围内。

标签: apache .htaccess mod-rewrite url-rewriting subdomain


【解决方案1】:

这是您应该在 .htaccess 中使用的代码:

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?my-website\.com$ [NC]
RewriteRule ^tag/ http://blog.my-website.fr%{REQUEST_URI} [NC,L,R=301]

【讨论】:

  • 不客气。很高兴它成功了。
【解决方案2】:

试试

RewriteCond %{HTTP_HOST} ^www\.my-website\.com$
RewriteCond %{REQUEST_URI} ^/tag/?(.*)$
RewriteRule ^/tag/?(.*)$ http://blog.my-website.fr/tag/$1 [QSA,L,R=301]

编辑:

oooh k... 从规则中删除额外的 ? 并且应该可以工作。

RewriteRule ^/tag/(.*)$ http://blog.my-website.fr/tag/$1 [QSA,L,R=301]

【讨论】:

  • 它使内部服务器错误.. 我认为这是因为子域也使用此规则并且它最终陷入无限循环
  • 在这种情况下,您可以使用多个 ReWriteCond 子句。一种用于检查域。
  • 我该怎么做?我在这方面有点新:P
  • 现在没有内部服务器错误..但它仍然没有重定向 u____U
【解决方案3】:

如果这是在 .htaccess 文件中,则 RewriteRule 模式中不能有前导 /:

RewriteRule ^tag/?(.*)$ http://blog.my-website.fr/tag/$1 [QSA,L,R=301]

【讨论】:

    猜你喜欢
    • 2012-04-11
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2014-02-04
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多