2012-09-13 212 views
1

我正在使用Tank_auth來處理註冊,登錄等。我的CI位於我的域根的子文件夾中,例如, www.domain.com/account/Codeigniter路由不重定向

爲例:

登錄控制器是這樣AUTH /登錄所以我的網址爲www.domain.com/account/auth/login

我想www.domain.com/account/auth/login改變www.domain.com/account/login所以在我的routes.php文件配置文件中添加此行:

$route['login'] = 'auth/login'; 

現在我希望,當我訪問www.domain.com/account/auth/login我被帶到www.domain.com/account/login。如果我訪問www.domain.com/account/login我會保持在該網址上,並且頁面應該正確加載。

相反,當我訪問www.domain.com/account/auth/login我看到登錄頁面,當我訪問www.domain.com/account/login我重定向到www.domain。 com/account/auth/login

此行爲似乎與文檔中描述的以及SO上的其他行爲相反。我曾嘗試交換$ route變量的密鑰和值,但這隻會導致上述兩個url的404s。

任何人都可以指向正確的方向嗎?我在這裏做錯了什麼?

感謝

[編輯] - htaccess的

RewriteEngine on 

# remove index.php from url 
RewriteCond $1 !^(index\.php|img|js|css|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /account/index.php/$1 [L] 

# redirect non-www to www 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
+0

兩件事:1.你可以發佈你的.htaccess內容,可能與此有關。 2.次要,次要但可能值得嘗試:在文檔中,他們在等於之前使用單引號,在等於之後使用雙引號。 – PaulSkinner

+0

@PaulSkinner感謝您的回覆。我已經在上面添加了htaccess內容。我嘗試了dbl引號,但這不起作用。 – Martin

+0

對不起,我很難過。看不出爲什麼這是行不通的。 – PaulSkinner

回答

1

不是一個完美的答案的內容,但我用與CI非常類似一種解決方法。我認爲這會做你要找什麼,如果你把它添加到您的routes.php文件:

$route['(login|logout|register|send_again|activate|forgot_password)'] = 'auth/$1'; 

我離開了從驗證類的一些方法,但你的想法。有一種更加優雅的方式可以讓我確信,但基本的想法就在那裏。

我在一個項目中使用了這種方法,其中有幾條基本上映射到靜態頁面的路線。正在使用「網頁」控制器,但網址最終結局如下:example.com/pages/about。我不喜歡這樣,所以我想出了上面的路線片段。

如果有更好的答案,我很樂意看到它。我當時記得這個困擾我......再看一遍它仍然如此:)