htaccess子域指向

时间:2011-07-26 13:54:01

标签: regex .htaccess mod-rewrite redirect subdomain

我需要一些关于htaccess子域的帮助才能指向文件夹中的特定文件。

父文件夹中应包含单独的php文件,以正确路径正确的应用程序。听起来很简单。

用户输入的网址不应该更改/重定向,而只应该更改/重定向 “链接”到背景中的正确文件

用户输入userbase.company.com时应指向

的示例
http://company.com/parent/userbase.php

同样,当用户输入userbase2.company.com时,它应指向

http://company.com/parent/userbase2.php

但不应该进行重定向。网址链接应保留在

http://userbase2.company.com 

文件夹将是相同的,但不是文件。有可能吗?

目前我有这个htaccess代码:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^userbase.company.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.userbase.company.com$
RewriteRule ^(.*)$ \./parent/userbase.php/$1 [L]

我必须把它放在/public_folder/对吗?不在/public_folder/userbase

1 个答案:

答案 0 :(得分:3)

这条规则可以胜任:

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} !^/parent/ 
RewriteCond %{HTTP_HOST} !=domain.com
RewriteCond %{HTTP_HOST} !=www.domain.com
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com$
RewriteRule (.*) /parent/%1.php%{REQUEST_URI} [L]
  1. 网址在浏览器中保持不变(表示重写 - 内部重定向)。

  2. 它仅适用于something.domain.com(不是domain.comwww.domain.com)。

  3. 它会将此请求http://user1.company.com/hello/pink/kitten.php重写为/parent/user1.php/hello/pink/kitten.php

  4. 如果子域很复杂(例如www.something.domain.com),那么它也会在重写中反映出来:例如: http://www.something.company.com/hello/pink/kitten.php将被重写为/parent/www.something.php/hello/pink/kitten.php。如果这种行为不受欢迎(我不知道您对100%的要求),那么您需要在规则中再添加一个条件。

  5. 主页请求(例如http://user1.company.com/)将以这种方式重写:/parent/user1.php/

  6. <强> P.S。 规则在发布之前进行了测试 - 工作正常,但如果需要使用CodeIgniter应用程序,则必须检查并调整它(抱歉,我不熟悉该框架)。

    在任何情况下,此规则都应 以上您的CodeIgniter重写规则(如果有的话)。