[英]How to Rewrite a url in a subdirectory and parameters?
這是我正在使用的頁面:
www.domain.com/clothing/mens/brand.html?brand=DOPE
我想將其更改為:
www.domain.com/clothing/mens/DOPE
我目前正在使用:
RewriteEngine On
RewriteRule ^mens/brand/([0-9a-zA-Z]+) mens/brand.php?brand=$1 [NC,L]
但這會產生不希望的效果:
www.domain.com/clothing/mens/brand/DOPE
當我刪除“品牌”時:
RewriteRule ^mens/([0-9a-zA-Z]+) mens/brand.php?brand=$1 [NC,L]
我沒有收到錯誤,但頁面空白。 我究竟做錯了什么? 我已經嘗試了一切,似乎沒有任何效果:(
嘗試這個:
RewriteEngine On
RewriteRule ^clothing/mens/([0-9a-zA-Z]+) /clothing/mens/brand.html?brand=$1 [NC,L]
您正在使用的頁面是brand.html還是brand.php?
讓我們回顧一下。 您要進行以下重定向:
clothing/mens/DOPE -> clothing/mens/brand.html?brand=DOPE
但是,您使用的規則(問題中首先提到的規則)將做到這一點:
mens/brand/DOPE -> clothing/mens/brand.html?brand=DOPE
我認為您應該使用以下規則:
RewriteEngine On
RewriteRule ^clothing/mens/([\da-z]+) mens/brand.php?brand=$1 [NC,L]
請注意,您可以使用[\\da-z]
(或[0-9a-z]
)代替[0-9a-zA-z]
,因為您使用的是No Case [NC]
標志。
感謝所有嘗試提供幫助的人,但是對於其他尋求答案的人,這是行之有效的。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^mens/([^/]+)$ mens/brand.php?brand=$1 [L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.