在vhost情况下将子域重写为子域/文件夹

时间:2009-08-20 13:26:55

标签: .htaccess apache2 subdomain rewrite vhosts

我正在尝试使用以下内容将abc.example.com/path重写为abc.example.com/index.php/abc/path .htaccess:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(abc)\.example\.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/abc/$1 [L]

情况是:

domain    www.example.com
vhost     www
subdomain abc.example.com
vhost     abc

我不希望{1}}显示在网址中。

有人有什么建议吗?

2 个答案:

答案 0 :(得分:0)

使用以下代码将域名后的所有内容附加到/index.php/abc

abc.domain.com/URL      -> abc.domain.com/index.php/abc/URL
abc.domain.com/URL/     -> abc.domain.com/index.php/abc/URL/
abc.domain.com/URL/URL  -> abc.domain.com/index.php/abc/URL/URL
abc.domain.com/URL/URL/ -> abc.domain.com/index.php/abc/URL/URL/

重写代码:

RewriteCond %{HTTP_HOST} ^(abc).domain.com
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/%1$1 [NC,L]

答案 1 :(得分:0)

在.htaccess文件中尝试此规则:

RewriteCond %{HTTP_HOST} ^([^./]+)\.example\.com$
RewriteRule ^index\.php$ index.php/%1%{REQUEST_URI} [L]