嗨,我想重寫我的網站網址。現在我正在使用PHP 5進行開發。我試着用下面的.htaccess。如何在php5中重寫URL?
RewriteEngine on
RewriteRule ^(.*)/(.*).html$ $1.php?code=$2 [L]
RewriteRule ^(.*).html$ $1.php [L]
沒有參數的URL正在工作,但第一個顯示了一些問題。它重定向到頁面,但頁面樣式缺少我爲代碼傳遞的任何值。 爲什麼會發生?有使用PHP5重寫URL的選項嗎?
嗨,我想重寫我的網站網址。現在我正在使用PHP 5進行開發。我試着用下面的.htaccess。如何在php5中重寫URL?
RewriteEngine on
RewriteRule ^(.*)/(.*).html$ $1.php?code=$2 [L]
RewriteRule ^(.*).html$ $1.php [L]
沒有參數的URL正在工作,但第一個顯示了一些問題。它重定向到頁面,但頁面樣式缺少我爲代碼傳遞的任何值。 爲什麼會發生?有使用PHP5重寫URL的選項嗎?
如果你重定向到'folder/file.html',你所有的相對鏈接都會混淆。它會在'folder/css/style.css'中尋找'css/style.css'。
您既可以使用絕對鏈接(即www.example.com/css/style.css),也可以重寫鏈接路徑。
RewriteRule ^(.+)/css/(.+)$ css/$2 [L]
如果你談論的CSS樣式,我想可能是因爲你正在進入一個新的子目錄,而style.css中是不存在的,但在主目錄。這是關於相對路徑,嘗試使用絕對路徑(「www.web.com/style.css」)
你有你的URL $ _SERVER ['REQUEST_URI'] 你可以解析你的PHP腳本,幷包括需要的文件。 在您的示例中,'REQUEST_URI'將是'/folder/file.html'。所以,你可以離開僅此重寫規則^(。*)。html $進行1.PHP $
在HTML頭設置<base href="http://mysite.com/"/>
包括CSS,JS纔等&
順便說一句,mod_rewrite的是Apache服務器模塊,它與PHP – Corkscreewe 2011-05-09 05:50:03
無關你說「頁面樣式不見了」是什麼意思? – kiamlaluno 2011-05-09 06:01:14
「(。*)。html $」部分應該是「(。*)\。html $」,或者該模式也會匹配「examplehtml」(而不是隻匹配以「.html」結尾的字符串)。 – kiamlaluno 2011-05-09 06:04:31