我试图创建正确的.htaccess,让我映射为这样:通配符子域的.htaccess和笨
http://domain.com/ --> http://domain.com/home
http://domain.com/whatever --> http://domain.com/home/whatever
http://user.domain.com/ --> http://domain.com/user
http://user.domain.com/whatever --> http://domain.com/user/whatever/
这里,有人会键入上述网址,但在内部,这将是重定向就好像它是右边的URL一样。
而且子域是动态的(也就是说,http://user.domain.com不是实际的子域,但将是一个重写的.htaccess)
而且/ home是我的默认控制器所以没有子域名会在内部迫使它到/ home控制器及其之后的任何路径(如上面的#2示例所示)将是该控制器内的(全部捕捉)功能。
像明智的,如果一个子域被传递它会得到与任何(全捕获)功能它沿着一个(全捕获)控制器传递(如上面的#4的例子)
希望I” m在这里不会问很多,但我似乎无法弄清楚适当的.htaccess或路由规则(在Codeigniter中)。
httpd.conf和主机设置得很好。
编辑#1
这里是我的.htaccess是即将接近,但在某些时候是搞乱:
RewriteEngine On
RewriteBase/
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{HTTP_HOST} ^([a-z0-9-]+).domain [NC]
RewriteRule (.*) index.php/%1/$1 [QSA]
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L,QSA]
通过上述,当我访问:http://test.domain/abc/123这是我通知在$ _SERVER var(我已经删除了一些字段):
Array
(
[REDIRECT_STATUS] => 200
[SERVER_NAME] => test.domain
[REDIRECT_URL] => /abc/123
[QUERY_STRING] =>
[REQUEST_URI] => /abc/123
[SCRIPT_NAME] => /index.php
[PATH_INFO] => /test/abc/123
[PATH_TRANSLATED] => redirect:\index.php\test\test\abc\123\abc\123
[PHP_SELF] => /index.php/test/abc/123
)
您可以看到PATH_TRANSLATED不正确医学和我认为这可能会搞砸了吗?
谢谢羚牛,不幸的是没有工作。它导致服务器500(由于可能的配置错误,请求超过了10个内部重定向的限制) – Gautam 2011-01-08 21:17:25