2011-05-14 11 views
0

隨着我的htaccess的文件,我想達到的htaccess重寫是這樣的:與條件

  • 是不是開始有下劃線或名爲admin子目錄應該被重定向到index.php
  • 所有所有請求是管理的子目錄和不請求起動用下劃線應重定向到管理/ index.php的

實例:
http://www.example.com/controller/method - >http://www.example.com/index.php
http://www.example.com/_css/style.css - >無重定向
http://www.example.com/admin/ - >無重定向
http://www.example.com/admin/controller/method - >http://www.example.com/admin/index.php
http://www.example.com/admin/_js/script.js - >無重定向

我得到了它的部分有時工作,但它並不漂亮。

我不認爲這很難,但我還沒有能夠重做網上列出的任何例子來處理這種情況。

回答

0

那麼這不是很難,但請檢查它

什麼與尾隨斜線?你有它還是總是被刪除?

RewriteRule ^admin/([^_].*)[^/]$ admin/index.php [L,QSA] 
RewriteRule ^([^_][^admin].*)/([^_].*)$ index.php[L,QSA] 
+0

是的,它可能會被尾隨斜線。儘管看起來好多了,但我仍然可以自己做最好的嘗試。然而,當瀏覽器決定要添加一個尾部空格時,它會打破下劃線,不會再工作了。 – Flanders 2011-05-15 09:40:57

+0

那麼很容易在htacces文件中添加規則,這樣尾部的睫毛就會被刪除,是否要添加一個traling斜線或刪除它?。哪個代碼工作得更好,當然認爲它是我的,因爲我用anubhava的其他代碼得到了一些奇怪的結果 – 2011-05-15 09:45:08

+0

我不確定我想要什麼。如果你閱讀http://sebastians-pamphlets.com/thou-must-not-steal-the-trailing-slash-from-my-urls/他認爲你應該強制結尾的斜線。恰恰相反。我真的覺得很失落。如何不接受www.site.com/admin/.+/$,但www.site.com/.+/$是? – Flanders 2011-05-15 10:22:50

0

我想下面的規則應該爲你工作:

Options +FollowSymlinks -MultiViews 
RewriteEngine on 

RewriteCond %{REQUEST_URI} !^/*(_|admin/?) [NC] 
RewriteRule . index.php [L] 

RewriteCond %{REQUEST_URI} !^/*admin/($|index\.php|_) [NC] 
RewriteRule ^(admin/.+)$ admin/index.php?p=$1 [L,NC] 
+0

謝謝。儘管看起來好多了,但我仍然可以自己做最好的嘗試。但是,當瀏覽器決定要添加尾部空格時,它會打破下劃線 - 字段不再起作用 – Flanders 2011-05-15 09:40:16