-1

我的CodeIgniter項目被放置在子文件夾中,我想用.htaccess來隱藏這兩個子文件夾。在CodeIgniter中使用htaccess從URL中刪除子目錄

一切工作正常,但我目前的URL看起來像這樣:

example.com/folder1/folder2/ci_project/class/function/$id 

我想這是:

example.com/class/function/$id 

現在,我使用這個簡單的.htaccess代碼,以去除index.php從網址:

Options +FollowSymLinks 
RewriteEngine on 

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

任何想法?

當我使用的文件夾1 /文件夾2/ci_project內htaccess文件下面的代碼,它隱藏的子目錄,但我得到的錯誤「未找到對象」

的RewriteCond%{REQUEST_URI}!^ /文件夾1 /文件夾2/ci_project/

重寫規則^(。*)$ /folder1/folder2/ci_project/index.php/$1 [L]

+0

你可以發佈您當前使用的.htaccess? – mic

+0

將index.php文件放在根目錄下,並將其中的應用程序和系統路徑設置到子文件夾中。 – Nishanthan

+0

任何反饋將不勝感激。你可以試試當前的答案嗎? –

回答

0

ci_project/移動當前的.htaccess文件域的根,並替換這些代碼在裏面:

<IfModule mod_rewrite.c> 
    Options +FollowSymLinks 
    RewriteEngine on 

    RewriteCond $1 !^(robots\.txt|favicon\.ico|public) 
    RewriteRule ^(.*)$ /folder1/folder2/ci_project/index.php/$1 [L] 
</IfModule> 

在這種情況下,您應該將公用文件放置在域的根目錄中,如public

如果您不希望它們被RewriteRule處理,您應該將其他文件夾(如public)添加到RewriteCond

如果多個應用程序在同一域中存在,你可能要考慮此選項:

<IfModule mod_rewrite.c> 
    Options +FollowSymLinks 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ /folder1/folder2/ci_project/index.php/$1 [L] 
</IfModule>