【问题标题】:How do I rewrite a request by hostname unless it is a specified value?除非它是指定值,否则如何按主机名重写请求?
【发布时间】:2012-10-06 23:43:16
【问题描述】:

我的应用程序将有一个常规域 - 比如说 example.com - 它将包含有关登录、注册等的信息。它还将动态托管许多其他域。我的应用在http://example.com/site/foobar.com/为这些网页提供服务

所以,我需要将主机名不是 example.com 的所有请求重定向到 /site/[hostname]/

我在 Django 中编写并使用 Apache 进行托管。

如何设置重写规则来执行此操作?用户不得知道他们在除 foobar.com 之外的任何其他站点,如果用户浏览到 foobar.com/something - URL 必须重写为 /site/foobar.com/something

【问题讨论】:

    标签: django apache mod-rewrite rewrite


    【解决方案1】:

    "Dynamic mass virtual hosts with mod_rewrite" 涵盖了这一点。不过,您可能想跳过访问 example.com 的部分,而改用本地文件系统。

    【讨论】:

    • 坚持本地文件系统是行不通的。我从 Django 中的 URL 中获取主机名,然后我的应用程序基于它提供内容。
    【解决方案2】:

    我解决了:

    RewriteCond %{HTTP_HOST} !^example\.com
    RewriteRule ^/(.*) /site/%{HTTP_HOST}/$1 [PT]
    

    【讨论】:

      猜你喜欢
      • 2018-10-21
      • 1970-01-01
      • 2011-09-07
      • 2013-10-10
      • 2019-07-25
      • 2019-04-30
      • 1970-01-01
      • 2014-01-23
      • 2014-07-23
      相关资源
      最近更新 更多