簡體   English   中英

htaccess重定向-使用子文件夾作為參數

[英]htaccess redirect - use subfolders as parameters

我一直在為(例如)在線商店制定htaccess重定向指令。

產品顯示在product.php上,並帶有ID參數。

我的目標是擁有

products/someValue/someID

映射到

product.php?param1=someValue&param2=someID

這是我到目前為止的位置。 這大部分都可以,但是有些事情並不是我想要的。 我需要它基本上將乘以斜杠將products/后的所有內容分開,並使用每個斜杠作為參數,而不管是多少。 此外,尾部的斜杠是可選的-如果不包含此規則,我的規則將拋出404。 誰能指出我正確的方向?

RewriteRule ^products/(.*)/(.*)/.*$ /product.php?param1=$1&param2=$2

您當前的正則表達式是貪婪的。 默認情況下,量詞是貪婪的。 添加? 使他們不高興。 或者,您可以更改您的正則表達式以匹配除/之外的任何其他東西:

RewriteRule ^products/(.*?)/(.*?)(/.*)?$ /product.php?param1=$1&param2=$2
RewriteRule ^products/([^/]*)/([^/]*)(/.*)?$ /product.php?param1=$1&param2=$2

閱讀正則表達式中的貪婪,以更好地理解這一點。

嘗試將正則表達式更改為非貪婪:

RewriteRule ^products/(.*?)/(.*?)/.*$ /product.php?param1=$1&param2=$2

要么:

RewriteRule ^products/([^/]+)/([^/]+)/.*$ /product.php?param1=$1&param2=$2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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