所有,一個可以使用反向引用命名的Apache中的mod_rewrite
我在我的RewriteRules,我想通過使用命名的反向引用來解決的一個遇到一個有趣的小怪癖。但是從我所看到的情況來看,這在Apache的mod_rewrite中是不可能的。
我有兩個傳入的url,每個包含一個關鍵變量,需要重寫爲相同的底層框架動作。
傳入的URL:
/users/list/page-2
/users/list/2
希望重寫端點
/模塊=用戶&行動=列表&頁次= 2
我也喜歡做這樣的事情這
重寫規則^ /(P <模塊>([\ W] +)?)/(P <動作>([\ W] +)?)/(頁 - )?(P <頁次>([\ d] +))$ /?模塊= $ {}模塊動作& = $ {}行動&頁次= $ {}頁次[L,QSA]
然而阿帕奇只是不想玩這樣的在所有指定的反向引用的位置給了我空值。爲了解決這個問題,我使用了對捕獲組的數字引用($ 1,$ 2,$ 4)(但我幾乎達到了N = 9 apache限制的一半)。所以這對我來說不是一個阻礙。
我只想知道,如果在Apache的mod_rewrite中有名稱的反向引用,如果它們是,爲什麼我的RewriteRule的模式不匹配?
感謝, 伊恩
這當然是達到所需結果的一種方式,但正如我在問題中所述,我已經使用數字參考已經有一個內聯解決方案。我的問題直接指向使用PCRE的內聯命名反向,可以使用它們,如果可以,爲什麼我的RewriteRule不起作用。 – flungabunga 2010-10-27 00:45:04
我認爲不支持名爲重寫。「RewriteCond指令」下只有四種方法:1.RewriteRule反向引用2.RewriteCond反向引用3.RewriteMap擴展(我的建議)4.服務器變量。其中只有兩個是非數字的。而非數字方法,它不會做你正在做的事情。 – denormalizer 2010-10-27 00:52:35
是的,我在doco上看到相同的結果,因爲背景N是集合(1 <= N <= 9),沒有提到命名反向引用。 (這讓我感到厭煩)。上調。 – flungabunga 2010-10-27 01:01:52