2013-02-21 99 views
1

我在我的web應用程序中有這樣的網址格式,如「www.mysitename.com/foldername/controller/method」。 並且所有請求的頁面都會先被重定向到index.php,然後處理請求的頁面。 但每當我去管理面板(www.mysitename.com/admin)url獲取「管理員」作爲文件夾名稱,它顯示了管理員的index.php,(這是正常的這種方式)然後與控制器名稱methodname它不重定向通過管理文件夾的index.php。htaccess管理面板的重寫規則

我希望這種模式下的網址「www.mysitename.com/admin/foldername/controller/method」,只要我訪問「管理員」。以及所有 通過管理員請求的頁面應首先重定向到admin文件夾中的index.php。 這裏是我的htaccess的文件 -

Options -Indexes 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-l 

    RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 
+0

所以,用什麼'/管理/'應該去'/ admin/index.php',和不是'/ index.php'? – BenM 2013-02-21 12:14:25

+0

是的。任何帶有'/ admin'的東西都應該在admin目錄下的index.php中。 – 2013-02-21 12:17:59

回答

6

你有一個.htaccess文件放在admin目錄,或者只是一個在根目錄?你需要在每個目錄中有一個。

我只是在/htdocs/pro.htaccess/htdocs/pro/admin相同.htaccess測試這和它的工作完全按照自己的解釋。在/htdocs/pro/.htaccess

Options -Indexes 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

聯繫htaccess的

根htaccess的在無論是在/htdocs/.htaccess/htdocs/pro/admin/.htaccess

Options -Indexes 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

單htaccess文件或/htdocs/pro/.htaccess

Options -Indexes 
RewriteEngine on 

# Change '/pro/' if directory is renamed 
RewriteBase /pro/ 

# Change the '/pro/' portion of the condition if directory is renamed 
RewriteCond %{REQUEST_URI} ^/pro/admin(.+)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ admin/index.php?url=$1 [QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 
+0

謝謝,這工作.. 但沒有把htaccess文件到管理目錄是否還有其他的東西可以工作爲相同? – 2013-02-24 06:04:16

+0

回答更新爲單個'.htaccess',其中包含管理員和根目錄,將其放在根目錄中。它會首先檢查是否有與管理員uri匹配的內容,如果不是,則將假定root uri。 – sjdaws 2013-02-24 06:12:20

+0

我只是在我的本地主機上測試這個。但它重定向到本地服務器的index.php。我把這個項目放在** htdocs **的** pro **目錄中。 – 2013-02-24 06:41:03