2013-11-28 21 views
1

後,我有以下的htaccess正則表達式htaccess的正則表達式強制數字的字符串

RewriteRule ^sitemap_(set|art|sub)_(([0-9]+)?).xml$ index.php?url=sitemap&doc=$1&id=$2 [QSA,NE,L] 

我需要「」號後面跟着數字是可選的。如果沒有數字後跟「_」符號,單獨的「」符號就不能出現。

我試圖讓「_」符號成爲可選的,包括一個?最後還是像sitemap_set_這樣的字符串被匹配。

希望我的解釋清楚,足以幫助您。其他指定看起來令人困惑的任何東西

回答

1

您可以使用它像這樣:

RewriteRule ^sitemap_(set|art|sub)(?:_([0-9]+))?\.xml$ index.php?url=sitemap&doc=$1&id=$2 [QSA,NE,L] 

這使得在隨後1個或多個數字可選。

+0

事情是我想下劃線後跟一個數字可選,但是對於下劃線的存在應該有一個數字後面。例如:sitemap_set_被上面的答案匹配。我想要做的是如果下劃線存在,它最後必須有一個數字。例如:sitemap_set_2 – codeGEN

+1

這正是正則表達式正在做的。只有後面有數字,它纔會匹配,整個匹配是可選的。 – anubhava

+0

抱歉。你的答案正在起作用。之前,我檢查了您的答案,並且看起來這些更改沒有從我的源文件複製到服務器文件夾。 – codeGEN