簡體   English   中英

htaccess網址重寫無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM