2012-12-14 52 views
2

我希望做一個.htaccess文件,讓任何請求傳遞到其原來的目的地,但重定向到一個特定的文件夾(在這種情況下,閃屏)無目的地指定。我對.htaccess不太瞭解,希望得到一些幫助。的.htaccess - 如果沒有請求的URI

例:我請求http://www.domain.com/folder/file.php,它應該通過。但如果我要求http://www.domain.com/,它應該重定向到http://www.domain.com/splash/

我有什麼至今正確重定向到/splash/,但重定向一切/splash/

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    # If the requested URI is empty... 
    RewriteCond %{REQUEST_URI} !^$ 

    # ...then redirect to the "splash" folder 
    RewriteRule .* splash [L] 

    # Otherwise rewrite the base 
    RewriteBase/

    # If the request is not a folder or a file, redirects to index.php 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
</IfModule> 

謝謝!

編輯:重要的一點是將http://www.domain.com/重定向到http://www.domain.com/splash/,但允許直接訪問http://www.domain.com/index.php

回答

5

%{REQUEST_URI}變量包括前斜線,所以它永遠不會是空。你可以擺脫這一點,只需使用這樣的規則:如果你想顯示在瀏覽器的地址欄中的URL留http://www.domain.com/,然後取出,R在方括號

RewriteRule ^/?$ /splash/ [L,R] 

[L]

+0

它部分工作。我現在可以訪問http://domain.com/folder/,但http://domain.com/index.php仍然會重定向到http://domain.com/splash/。 –

+0

@RémiBreton'index.php'不應該匹配'^ /?$',你確定這不是瀏覽器緩存問題嗎? –

+0

積極。清除緩存,多個瀏覽器,多臺機器,所有相同的結果:直接進入'/ splash /'。感謝幫助! –

相關問題