nginx url rewrite mysite.com/blog => blog.mysite.com/blog

时间:2011-02-20 17:09:06

标签: regex django nginx rewrite

你好regex和nginx - 朋友,

我在网上搜了好几个小时,这让我抓狂:-)我甚至找不到类似的问题。 我想重写mysite.com/blog - > blog.mysite.com/blog。

也许我完全错了,但现在我有:

  if ($host !~* ^(blog|subdomain)/blog$) {
       rewrite ^/(.*)$ $scheme://blog.$host/$1 permanent;
 }

这有点工作但不是真的。我明白了: http://blog.blog.mysite.com/blog总是2次博客。为什么呢?

你可以查看我的“IF”声明吗?我认为它写得不正确,因为我真正想说的是: 如果URI不是以博客开头,而是以/ blog结尾,而不是添加“博客”。在http://之后直接开头,它看起来像http://blog.mysite.com/blog

提前多谢你们!

2 个答案:

答案 0 :(得分:0)

尝试这样的事情。现在,您正在尝试比较主机名以匹配网址路径。

location /blog {
  if($host !~* ^(blog.mysite.com)$) {
    rewrite ^/(.)$ $scheme://blog.$host/$1 permanent;
  }
}

答案 1 :(得分:0)

所以我必须回答我自己的问题。 请原谅我,这不是一个真正的答案。 第一件事首先,......我放弃了这一点。

为什么呢? 好吧,我认为为我的论坛博客提供支持并购买漂亮的uris就好了 blog.mysite.com shop.mysite.com forum.mysite.com 洞的东西是django + nginx(服务静态文件)+ apache2 - 驱动。 现在我的网址看起来像这样:mysite.com/forum mysite.com/blog mysite.com/shop。 我没有看到如何改变它的解决方案。 如果我管理todo重写我会有另一个问题,因为我会得到类似于这个blog.mysite.com/blog的uris,它看起来也不是很漂亮。 我的django应用程序是用一个apache VirtualHost完成的,只有一个wsgi_handler。

所以,如果我真的想要子域名。

我应该这样做:multiple-subdomains

我认为在SEO(搜索引擎优化)的含义中,可能有多个子域并不是一个好主意。也许子域名不如URL中的子文件夹那么多。

所以,如果没有人给我一个荣耀的解决方案,真正的男人如何做到这一点,我会去我的A-Records博客商店论坛并删除它们。所以我将使用mysite.com / *

你觉得怎么样? 问候sc