簡體   English   中英

Apache重寫規則(Regex)

[英]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.

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