2011-05-09 51 views
0

嗨,我想重寫我的網站網址。現在我正在使用PHP 5進行開發。我試着用下面的.htaccess。如何在php5中重寫URL?

RewriteEngine on 

RewriteRule ^(.*)/(.*).html$ $1.php?code=$2 [L] 
RewriteRule ^(.*).html$ $1.php [L] 

沒有參數的URL正在工作,但第一個顯示了一些問題。它重定向到頁面,但頁面樣式缺少我爲代碼傳遞的任何值。 爲什麼會發生?有使用PHP5重寫URL的選項嗎?

+3

順便說一句,mod_rewrite的是Apache服務器模塊,它與PHP – Corkscreewe 2011-05-09 05:50:03

+0

無關你說「頁面樣式不見了」是什麼意思? – kiamlaluno 2011-05-09 06:01:14

+0

「(。*)。html $」部分應該是「(。*)\。html $」,或者該模式也會匹配「examplehtml」(而不是隻匹配以「.html」結尾的字符串)。 – kiamlaluno 2011-05-09 06:04:31

回答

2

如果你重定向到'folder/file.html',你所有的相對鏈接都會混淆。它會在'folder/css/style.css'中尋找'css/style.css'。

您既可以使用絕對鏈接(即www.example.com/css/style.css),也可以重寫鏈接路徑。

RewriteRule ^(.+)/css/(.+)$ css/$2 [L] 
1

如果你談論的CSS樣式,我想可能是因爲你正在進入一個新的子目錄,而style.css中是不存在的,但在主目錄。這是關於相對路徑,嘗試使用絕對路徑(「www.web.com/style.css」)

1

你有你的URL $ _SERVER ['REQUEST_URI'] 你可以解析你的PHP腳本,幷包括需要的文件。 在您的示例中,'REQUEST_URI'將是'/folder/file.html'。所以,你可以離開僅此重寫規則^(。*)。html $進行1.PHP $

1

在HTML頭設置<base href="http://mysite.com/"/>包括CSS,JS纔等&