我試圖創建正確的.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