2012-11-29 86 views
1

我需要任何調用到一個HTML文件被改爲一個PHP和完整的路徑和文件應作爲一個get參數傳遞。重寫路徑獲取參數

例如

http://www.domain.com/any/path/file.html 

應該成爲

http://www.domain.com/index.php?path=any-path-file.html 

我要路由每次調用一個HTML文件通過PHP文件。重寫應忽略任何其他文件。

另外:有可能再次添加其他參數嗎?

/file.html?foo=bar 
becomes 
/index.php?path=file.html&foo=bar 

在此先感謝 史迪威

回答

2

我不認爲它可以做到準確什麼你正在嘗試做的,但我覺得我們能得到如此接近,它不會不管。

以下重寫

RewriteCond %{REQUEST_URI} \.html$ 
RewriteRule (.*) /index.php?path=$1&%{QUERY_STRING} [L] 

將採取以.html結尾的任何請求和重寫它到index.php,加入完整的路徑作爲查詢字符串。它還會將原始請求上的任何現有查詢字符串附加到新請求。這並不完全符合你的要求,因爲路徑變量看起來像path = any/path/file.html,而不是path = any-path-file.html。但這是什麼,不能只是在index.php的前幾行進行整理,

if(isset($_GET['path'])) { 
     $_GET['path'] = str_replace("/","-",$_GET['path']); 
    } 
+0

謝謝,我在印象中,斜槓是不允許在獲取parametervalue.It按照您所描述的方式工作。 – StilgarBF