我希望能够得到帮助,匹配以下URL链接。
如果域名后的第一部分是以".php"结尾的文件名(参见最后2个示例),则应重定向到/unknown.php。我认为需要2个正则表达式,第一个几乎应该是:^/([a-zA-Z0-9_]+)(/)?(.*)?$,第二个用于捕获直接文件名"/filename.php"或"/filename.php/create/user",以便可以重定向到unknown.php。我已经得到了几乎适用于第一部分的第一个正则表达式。==============================================
问题在于它还匹配了http://domain.com/user.php/create。 如果有人能帮我处理这两个正则表达式,那就太好了。
/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个正则表达式,第一个几乎应该是:^/([a-zA-Z0-9_]+)(/)?(.*)?$,第二个用于捕获直接文件名"/filename.php"或"/filename.php/create/user",以便可以重定向到unknown.php。我已经得到了几乎适用于第一部分的第一个正则表达式。==============================================
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。 如果有人能帮我处理这两个正则表达式,那就太好了。