我正在嘗試匹配 URL 的一部分,然后使用匹配的運算式從舊 URL 追加到查詢字串的末尾。
我有以下行.htaccess,一旦我弄清楚我做錯了什么,我將能夠修復其余部分,所以現在我將只關注以下行:
RewriteRule ^league/([^/]*)$/matches/? index.php?page_id=1074&league=$1
我想出現在([^/]*)$哪里$1
所以本質上:/league/29/matches/會指向index.php?page=1074&league=29
誰能告訴我我做錯了什么?:)
uj5u.com熱心網友回復:
RewriteRule ^league/([^/]*)$/matches/? index.php?page_id=1074&league=$1
正則運算式中間的 subpattern 之后的$(end-of-string anchor) 在([^/]*)$這里沒有意義,會導致正則運算式失敗。您還應該在 此處使用量詞(1 或更多)。您還缺少$正則運算式末尾的字串結尾錨 ( )(否則尾隨/?是多余的)。盡管您不應該在重寫時真正使尾部斜杠成為可選,因為它可能會為您打開重復的內容。(您應該重定向以追加/洗掉尾部斜杠以規范化 URL。)您還L缺少RewriteRule.
請嘗試以下操作:
RewriteRule ^league/([^/] )/matches/?$ index.php?page_id=1074&league=$1 [L]
雖然,如果您只期望數字(如您的示例中所示),那么您應該匹配數字,而不是任何東西。因此,以下內容可能“更”正確:
RewriteRule ^league/(\d )/matches/$ index.php?page_id=1074&league=$1 [L]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/482668.html
