.htaccess重写子域的规则

时间:2008-12-14 14:24:52

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

我使用codeigniter作为主域上的主要安装。我创建了一个子域名和一个名为live的文件夹,例如live.domain.com映射到public / live。但是在公开场合我使用codeigniter。

我现在拥有动态codeigniter网址:

http://domain.com/api/

我要映射到我的子域名:

https://live.domain.com

所以去:

https://live.domain.com/api/functioname

将使用脚本:

http://domain.com/api/apifunctioname

可能:

http://domain.com/api/apifunctioname/parameter1/parameter

所有内容都在同一台服务器上,因此不需要重定向。

任何人都对使用哪些重写规则有任何想法?

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^live\.domain\.com [NC]
RewriteRule (.+)$ "http://domain.com/api/$1" [L]

上述内容非常适合作为重写但重定向到http://domain.com/api/functionname而不是我希望它路由;所以当去:

https://live.domain.com/api/functioname

它保留在该URL但使用

的脚本
http://domain.com/api/functionname

非常感谢,

2 个答案:

答案 0 :(得分:10)

如下所示:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^live\.domain\.com$ [NC]
RewriteRule (.+)$ "https://domain.com/api/$1" [L,P]

答案 1 :(得分:4)

只需添加index.php,见下文

RewriteEngine On
RewriteCond %{HTTP_HOST} ^live\.domain\.com$ [NC]
RewriteRule (.+)$ "https://domain.com/index.php/api/$1" [L,P]