2015-11-02 39 views
0

我在我的.htaccess文件下面的代碼:的RewriteCond如果文件不存在

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(\w+)$ /pages.php?link=$1 

我的理解是,它應該檢查,如果文件不存在,請檢查目錄不存在,然後如果這些都是真的,那麼執行規則。 出於某種原因,但它給我一個錯誤,當我去:

http://localhost/1.php

彈出的錯誤信息是:

script 'C:/xampp/htdocs/1.php' not found or unable to stat 

奇怪的是,雖然,當我去: http://localhost/1

它按照它的行爲(相應地重定向)。

+0

是1.php一個真實的文件? –

+0

沒有。但2.php是一個真正的文件。基本上,如果它是一個真正的文件,我希望它可以訪問它,如果它不是它應該重定向。 – Robbie

回答

1

我相信你的問題是你的正則表達式。您正在使用\w來匹配單詞。那麼.是不匹配的。改變你的規則。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /pages.php?link=$1 
+0

我是多麼愚蠢。我也完全知道這一點。 – Robbie