2012-03-06 88 views
2

我使用這些規則:的.htaccess - 不工作子目錄

RewriteEngine on 

RewriteRule ^robots.txt$ - [L] 
RewriteRule ^favicon.ico$ - [L] 

RewriteRule ^([^(/\.)]+)/([^(/\.)]+)/([^(/\.)]+)/([^(/\.)]+)/?$ index.php?id=$1&id2=$2&id3=$3&id4=$4 [QSA,L] 
RewriteRule ^([^(/\.)]+)/([^(/\.)]+)/([^(/\.)]+)/?$ index.php?id=$1&id2=$2&id3=$3 [QSA,L] 
RewriteRule ^([^(/\.)]+)/([^(/\.)]+)/?$ index.php?id=$1&id2=$2 [QSA,L] 
RewriteRule ^([^(/\.)]+)/?$ index.php?id=$1 [QSA,L] 

在我的網頁呈現效果很好,但是當我想去管理部分,並鍵入只是/管理員,所以我重定向到admin /?id = admin(壞頁面) - 對於顯示登錄表單,我必須鍵入/admin/index.php而不是簡單的admin

你能幫助我,如何解決這個問題?

感謝

+0

是/管理員/一個真實的目錄?在這種情況下,你必須在該目錄中添加另一個.htaccess文件,該文件重定向 – clem 2012-03-06 12:13:05

+0

,但不會更容易,更清潔,並且可以放入前端.htaccess中? – user984621 2012-03-06 12:20:28

+0

'DirectorySlash Off'應該可以解決這個問題。 – Gerben 2012-03-06 15:38:58

回答

1

所以,我解決了,通過這種方式:

RewriteRule ^(admin)/(.*)$ $1/$2 [L] 
+0

你沒有說你想讓它像那樣工作,說出你的問題更好! – fire 2012-03-06 12:30:53

1

而是大量的重寫規則,你應該有一個推動通過的index.php一切一個規則的,然後使用PHP來管理,而不是使用$_SERVER變量這些頁面。

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

這只是我的意見,但在回答你原來的問題試試這個作爲你的第一條規則:

RewriteRule ^/admin$ index.php?id=admin [QSA,L] 
+0

我正在嘗試類似** RewriteRule ^/admin $ admin/login.php [QSA,L] **,但不幸的是不起作用 – user984621 2012-03-06 12:18:52