我想要一些幫助匹配以下網址。正則表達式匹配url無文件擴展名
/settings => /settings.php
/657_46hallo => /657_46hallo.php
/users/create => /users.php/create
/contact/create/user => /contact.php/create/user
/view/info.php => /view.php/info.php
/view/readme - now.txt => /view.php/readme - now.txt
/=> [NO MATCH]
/filename.php => /unknown.php
/filename.php/users/create => /unknown.php
如果域名之後的第一個部分是結尾的文件名「.PHP」 (見最後2例),它應該重定向到/unknown.php
我想我需要2個正則表達式 1st應該幾乎是這樣的:^ /([a-zA-Z0-9 _] +)(/)?(。*)?$ 2nd捕獲直接文件名「/filename.php」或「/ filename」。 PHP /創建/用戶「 所以我可以重定向到unknown.php
我得到的第一個正則表達式幾乎適用於第一個pa RT。 ==============================================
request url: http://domain.com/user/create
regex: ^/([a-zA-Z0-9_]+)(/)?(.*)?$
replace http://domain.com/$1.php$2$3
makes: http://domain.com/user.php/create
問題是,它也符合http://domain.com/user.php/create
如果有人能幫助我與兩個正則表達式將是巨大的。
這似乎是要做的。 (第一個示例與regexr鏈接不同,但regexr網站上的示例正在運行:^ /([a-zA-Z0-9 _] + \。php)(/)?(。*)?$ ) – 2011-06-01 13:30:06