2014-09-11 106 views
0

我在根目錄下有一個目錄/新聞,我也有一個/新聞清理路徑。 我在/ news目錄中有一些子目錄和文件。與目錄同名的乾淨路徑

我需要支持乾淨的路徑/新聞(有時具有相同的額外$ _GET參數),並允許鏈接到真實/新聞目錄中的真實文件和子目錄。

我目前的.htaccess的樣子:

RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} /news/?$ [OR] 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    RewriteRule^index.php [L] 

但也有一些問題,Ajax請求(存在於普通用戶的請求沒問題)到/新聞路,如果有一些GET參數,它總是在路徑末尾添加斜線,例如我輸入example.com/news,因此它重定向到example.com/news/。

如何在這種情況下使用與現有目錄相同的乾淨路徑?

+0

嘗試評論'RewriteCond%{REQUEST_FILENAME}/news /?$ [OR]'line – anubhava 2014-09-11 07:00:52

+0

@anubhava在這種情況下,我從example.com/news請求的/ news目錄獲取內容。我想從/ news乾淨的路徑中獲取內容。 – murphy 2014-09-11 11:20:45

+0

從哪裏'/ news'將從哪裏獲得內容?如果不是'/ news/index.php'? – anubhava 2014-09-11 11:27:10

回答

0

以下規則應該在根目錄的.htaccess爲你工作:

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} ^/news/?$ [OR] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule^index.php [L] 

確保沒有/news/.htaccess來覆蓋它。

+0

結果無差異。但是,我看到第一個對「http:// domain.com/news」的ajax請求被重定向(301)爲「http:// www.domain.com/news」,但我禁用了www。前綴在htaccess(我使用標準Drupal文件http://cgit.drupalcode.org/drupal/tree/.htaccess?id=7.31與uncommented關於www前綴轉發到非WWW的2條線) – murphy 2014-09-12 21:29:31

+0

那麼測試這個一個新的瀏覽器,以避免舊的緩存'www'加法。 – anubhava 2014-09-12 21:34:21