2012-07-03 59 views
2

我是新的url重寫,目前面臨的問題是重寫codeigniter中的多個應用程序的url。我已經掃描了整個計算器與一些潛在的答案,但它仍然沒有解決我的問題完全mod_rewrite在codeigniter中的多個應用程序

我在根目錄是這樣

  • -application
  • --administrator
  • - 前端

我在找的是我的用戶http://www.mydomain.com/訪問我的網站(前端)和我聯繫(後端)爲http://www.mydomain.com/admin/

我目前的.htaccess是這樣

<IfModule mod_rewrite.c> 
    RewriteEngine On 
# If the user types just "admin". 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^admin$ administrator.php [L,QSA] 

# If the user enter in any admin section, like "admin/section". 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^admin\/(.*)$ administrator\.php/$1 [L,QSA] 

# If the user types any site section, like "site/section". 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index\.php/$1 [L,QSA] 

    ErrorDocument 404 /index.php 
</IfModule> 

代碼CodeIgniter multi-application .htaccess problem

我能得到什麼,我在上述的.htaccess前端的願望,但我不能讓它工作我的後端。基本上,www.domain.com/admin提供了404頁未找到錯誤。

請在問題上給我建議。另外,請指導我在哪裏我應該放置這個.htaccess文件?在根?在應用程序文件夾內?或分別在前端和管理員文件夾中。

非常感謝。

問候。

+0

對不起,該目錄是這樣的 -application - 管理員 - 前端 - 管理員。php -index.php –

回答

0

找到了解決此問題的方法。這不是一個非常聰明的做法,但至少可以工作。

首先,我在根目錄下創建了一個'admin'文件夾,並附帶了應用程序index.php的副本 這使得我的目錄看起來像這樣。

-admin 
    --.htaccess 
    --index.php 
    -application 
    --frontend 
    --administrator 
    -index.php 
    -.htaccess 

對於這個解決方案,你將需要在不同位置有兩個.htaccess文件。 對於根目錄中的.htaccess,它應該看起來像這樣。

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond $1 !^(index\.php|update\.php|administrator\.php|assets|admin|robots\.txt|favicon\.ico) 
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    ErrorDocument 404 /index.php 
</IfModule> 

對於在管理文件夾

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteRule ^/(.*)$ index.php/$1 [L] 

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


</IfModule> 

<IfModule !mod_rewrite.c> 
    ErrorDocument 404 /index.php 
</IfModule> 

雖然這個工程localhost上的.htaccess,值得注意的是,它可能無法在租用的服務器上工作,因爲您的主機的文件系統可能會有所不同。

0

爲什麼不在你的根目錄中這樣的東西。

RewriteEngine on 
RewriteCond $1 !^(index\.php|update\.php|assets|admin|robots\.txt|favicon\.ico) 
RewriteRule ^(.*)$ index.php/$1 [L] 

這將基本上忽略任何目錄,如「admin」路由到前端應用程序。您將不得不設置您的config.php並從控制器中刪除index.php。

相關問題