2009-10-06 102 views
1

好的,所以我們在錯誤的目錄下工作,哼!.htaccess文件沒有按計劃工作

我們有一個.htaccess設置爲將某些文件重定向到php腳本的文件。現在我們添加了一些我們想要繞過這個重定向的硬文件。到目前爲止,這似乎並沒有起作用,我們很難過。

下面是我們最初的.htaccess文件內容開始其工作對其他應用已經發動機後:

的RewriteCond $ 1→(的index.php |的robots.txt |的favicon.ico)

(。*)

重寫規則^ $ /index.php/$1 [L]

我們正試圖立即加載文件從/目錄/所以我們嘗試將每一種到的RewriteCond部分:

的RewriteCond%{REQUEST_URI}目錄

的RewriteCond $ 1→!(的index.php | I/|的robots.txt |的favicon.ico |目錄)

似乎都不奏效。任何想法如何讓這個加載?

例子:

應該重定向

http://site.com/thisredirects/

不應該重定向

http://site.com/directory

http://site.com/directory/

http://site.com/directory/index.php

回答

0

你嘗試過做第二個.htaccess文件/目錄目錄,並在其中做了NoRewrite?

1

試試這個:

慣於重定向

RewriteRule directory/.* - [L] 

重定向

RewriteRule ^$ thisredirects/ [L] 
RewriteRule (.*) thisredirects/$1 [L] 
0

似乎要重定向任何實際上不是在你的文檔根目錄的現有文件到您的索引。 PHP。這種重寫的一點應該處理:

RewriteCond %{REQUEST_FILENAME} -s [OR] # file with size 
RewriteCond %{REQUEST_FILENAME} -l [OR] # file is a link 
RewriteCond %{REQUEST_FILENAME} -d  # file is a directory 
RewriteRule ^.*$ - [NC,L]    # don't rewrite [last rule] 
RewriteRule ^(.*)$ /index.php/$1 [NC,L]  # everything else gets sent to index.php 

[OR]運營商可能是你在找什麼上的RewriteCond爲好。

此外,如果你只是想列入白名單/目錄部分,你可以重新導向被標記爲[L]「最後一條規則」

RewriteRule ^/directory.*$ - [NC,L] 
之前把規則