[英]How to redirect URL using .htaccess with dynamic parameter?
我想重定向
https://example.com/product-info/A100001
到
https://example.com/product-info/index/index/id/A100001
使用.htaccess 重定向規則
A100001 將是動態的
A100001
A100002
A100003
A100004
....
我正在嘗試這個
RewriteEngine on
RewriteCond %{QUERY_STRING} product-info/A100001
RewriteRule ^$ /routing/index/index/id/? [L,R=301]
還嘗試了其他示例,但在我的場景中不起作用
任何精通 htacees 規則的人都可以在這方面幫助我。
RewriteCond %{QUERY_STRING} product-info/A100001 RewriteRule ^$ /routing/index/index/id/? [L,R=301]
您的示例 URL 僅包含 URL 路徑,不包含查詢字符串。 您發布的規則會將/?product-info/A100001
到/routing/index/index/id/
。
請嘗試以下內容:
RewriteRule ^(product-info)/(A\d{6})$ /$1/index/index/id/$2 [R=302,L]
上面的代碼會將/product-info/A123456
形式的請求重定向到/product-info/index/index/id/A123456
。
$1
反向引用僅包含product-info
,從RewriteRule
模式(保存重復)中捕獲, $2
包含動態部分( A
后跟 6 位數字)。
這是一個 302(臨時)重定向。 始終首先使用 302 進行測試,以避免潛在的緩存問題。
.htaccess
文件中指令的順序很重要。 在任何現有重寫之前,此規則可能需要在文件頂部附近添加 go。
更新:
重定向正在使用你的代碼,你能告訴我參數模式嗎,我需要從 A452218 到 A572217 的數字
Regex 不處理數字范圍,只處理字符范圍。 如果您特別只想匹配指定范圍內的數字,那么您需要執行以下操作(更復雜):
RewriteRule ^(product-info)/A(45221[89]|4522[2-9]\d|452[3-9]\d{2}|45[3-9]\d{3}|4[6-9]\d{4}|5[0-6]\d{4}|57[01]\d{3}|572[01]\d{2}|57220\d|57221[0-7])$ /$1/index/index/id/A$2 [R=302,L]
注意: $2
反向引用現在只包含動態數字,減去A
前綴,它現在明確包含在替換字符串中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.