【问题标题】:Wild Card Subdomain rewrite rules通配符子域重写规则
【发布时间】:2014-06-09 11:57:41
【问题描述】:

我有 CodeIgniter 应用程序,我想在其中使用通配符子域,服务器上的所有设置都已完成并且它也允许,请在下面找到我想要实现的目标:

网址:testing.domain.com 将执行:domain.com/user/profile/testing

我不想重定向,但我希望它通过重写规则来完成,即它会像 index.php?/user/profile/testing 一样调用 backed 并调用该用户控制器函数。

希望我已经完美地解释了它。

请尽快帮助我。

谢谢。

【问题讨论】:

    标签: php apache .htaccess codeigniter mod-rewrite


    【解决方案1】:

    这可能是您正在寻找的(您必须对其进行调整以适应 https 的使用):

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$
    RewriteRule ^(.*)$ http://domain.com/user/profile/%1/$1 [L,QSA]
    

    请注意,如果您可以访问真实的服务器配置并且可以使用它而不是 .htaccess 样式文件,那么您应该始终更喜欢那个替代方案。 .htaccess 样式文件出了名的容易出错,使事情变得复杂,难以调试并且大大降低了服务器的速度。在这种情况下,上面的代码需要进行细微的更改。

    【讨论】:

    • 您好,感谢您的回答,但我不希望它重定向。我希望该用户会看到 testing.domain.com 但在后端它将调用 index.php?/user/profile/testing.
    • 此规则不重定向。它在内部重写。
    • 如果你放 http 它将重定向,否则它将在内部重写。我曾尝试过,但我使用的是 codeigniter,所以我将 URL 更改为 index.php?/user/profile/testing 之类的东西,但它仍然加载主页。
    • 您可能是对的,这实际上取决于您的设置。你可以试试P 标志(所以[P,L,QSA])来防止重定向。
    • hmm...它会生成 404 not found
    猜你喜欢
    • 2014-12-29
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 2011-10-20
    • 2012-06-11
    • 1970-01-01
    相关资源
    最近更新 更多