[英]htaccess url rewrite not working properly
我知道這個問題已經被問了幾次了,但是我已經為此動了好幾個小時,我似乎無法弄清楚。
所以我有一個網址: http : //example.com/product.php? id= 123我想重寫為http://example.com/product/123
我有以下代碼:
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z-\s0-9]+)$ /product.php?id=$1 [L]
並且它使http://example.com/product/123網址正常工作,但是圖像未加載,我想是因為php試圖在/ product目錄中找到它們,而且如果我輸入原始網址,它也不會不會被重寫。
那么,您能幫我解決這些問題嗎?
任何幫助深表感謝!
將此代碼放在您的DOCUMENT_ROOT/.htaccess
文件中:
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} \s/+product\.php\?id=([^\s&]+) [NC]
RewriteRule ^ product/%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^product/([^/.]+)/?$ product.php?id=$1 [L,QSA]
RewriteRule ^([A-Za-z\s0-9-]+)/?$ /product.php?id=$1 [L,QSA]
對於css / js / images的問題,請在css,js,圖像文件中使用絕對路徑,而不要使用相對路徑。 這意味着您必須確保這些文件的路徑以http://
或斜杠/
開頭。
您可以嘗試將其添加到頁面的HTML標頭中: <base href="/" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.