[英]Apache Rewrite Rule (Regex)
我正在使用apache,我需要重寫以下類型的URL:
/ a / b / c / d / boundary / stuff *
至:
/ boundary / a_b_c_d / stuff *
我需要將第一個Uri重寫為第二個格式。
'/ boundary'之前的元素數量是可變的,我想用'_'替換元素之間的所有斜杠('/')
邊界詞始終相同。
我相信我需要制定兩個規則,一個用於斜杠替換,另一個用於將邊界更改為URL的開頭:
我認為第二個規則是類似^ /(。*?)/ \\ bboundary \\ b到/ boundary / $ 1
有可能實現我想要的嗎?
怎么樣?!
謝謝。
編輯
我想匹配直到第一個邊界詞,才可能有一個類似
/ a / b / c / d / boundary / boundary
編輯
濃湯感謝您的幫助
根據您的重寫規則,我設法創建了一個。
嘗試以下規則:
RewriteRule ^/([^/]+)/(.+)/boundary/([^/]+)$ /$1_$2/boundary/$3 [N]
RewriteRule ^/([^/]+)/boundary/([^/]+)$ /boundary/$1/$2 [L]
注意帶有N標志的第一個規則會導致內部重寫而不增加內部計數器。 因此,您有無限的遞歸機會。
編輯更改問題后:
RewriteCond $1 !=boundary
RewriteCond $2 !=boundary
RewriteRule ^/([^/]+)/([^/]+)(/.*)?$ /$1_$2$3 [N]
RewriteRule ^/([^/]+)/boundary(/.*)$ /boundary/$1$2 [L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.