2012-01-02 56 views
0

我試圖實現漂亮的網址。 我用PHP編寫的所有東西都能正常工作。我需要通過index.php處理每個請求。重定向模式重寫甚至絕對url

例如website/page/search/question/dogs將被索引處理。 但是website.com/templates/header.tpl會開始下載文件。

我想通過index.php處理甚至地址到另一個文件。

在.htaccess我有。

RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^.*$ ./index.php 

我怎樣才能hande甚至絕對url通過index.php文件?

+0

你是什麼意思亨利?你能解釋一下在你的問題中「重定向」是什麼意思? – hakre 2012-01-02 13:17:24

+0

我的意思是用戶類型地址「example.com/hello.php」,但服務器不會調用hello.php,但index.php(和.php?id =/page/view後的參數將可用於index.php) – Jindra 2012-01-02 13:23:39

+0

Where應該''id'參數的值是從哪裏來的? – hakre 2012-01-02 13:32:15

回答

0

如果您想重寫的文件的URL!已存在於服務器上,則需要刪除!-F(不是文件)和!-D(不是目錄)檢查。否則,你爲你的RewriteRule設置了錯誤的RewriteCond itions。

但是,有一個警告,你不想重寫index.php本身,否則會導致無盡的重寫循環。

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !=^./index\.php$ 
RewriteRule ^.*$ ./index.php [L] 

另請參閱RewriteCond Directive­Docs

0

rmove條件的網址不能是一個目錄或文件名: 的RewriteCond%{} SCRIPT_FILENAME -d
的RewriteCond%{} SCRIPT_FILENAME -f

+0

我以前試過,但會引發錯誤500內部服務器錯誤 – Jindra 2012-01-02 13:32:58

+0

請參閱下面的註釋 – 2012-01-02 14:35:28