正则表达式帮助:最后一个斜线之后和询问之前和询问之后的数据
Regex help: data after last slash and before interrogation and after interrogation
我的应用程序中有以下 url 类型:
http://192.168.0.191/myapp/public/controller_name/action_name
http://192.168.0.191/myapp/public/controller_name/action_name/param1/param2
http://192.168.0.191/myapp/public/controller_name/action_name?parameterlist
Ans 我正在使用以下 REGEX 进行重定向:
我有以下用于重定向的正则表达式(所有内容都通过索引页):
"^([a-zA-Z0-9\/\-_]+)\.?([a-zA-Z]+)?$"
重定向到 "/myapp/public/index.php?url=&extension=")
以下是使用的 URL 的示例:
http://192.168.0.191/myapp/public/customers -> Call customer controller
http://192.168.0.191/myapp/public/customers/detail/2 -> Show customer detail for id = 2
两者都很好。我的问题是下面的 URL - 为 Datagrid 对象加载客户数据:
http://192.168.0.191/myapp/public/customer/loadDtData?draw=1&columns%5B0%5D%5Bdata%5D=0&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=1&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=2&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=3&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=4&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=0&order%5B0%5D%5Bdir%5D=desc&start=0&length=25&search%5Bvalue%5D=&search%5Bregex%5D=false&_=1450111563514
如何修复正则表达式以分隔最后一个 /
之后但 ?
之前的文本,然后将 ?
之后的文本作为参数传递给应用程序。
感谢您的帮助。我使用 lighttpd 作为网络服务器。
OBS:对于 Apache,我会使用下面的 RewriteRule
来解决这个问题,但是 lighttpd 不支持 QSA:
RewriteRule ^([a-zA-Z0-9\/\-_]+)\.?([a-zA-Z]+)?$ index.php?url=&extension= [QSA,L]
在没有 QSA
标志的情况下试试这个规则:
url.rewrite = ( "^/([\w/-]+)\.?([a-zA-Z]+)?(?:\?(.*))?" => "/index.php?url=&extension=&" )
我的应用程序中有以下 url 类型:
http://192.168.0.191/myapp/public/controller_name/action_name
http://192.168.0.191/myapp/public/controller_name/action_name/param1/param2
http://192.168.0.191/myapp/public/controller_name/action_name?parameterlist
Ans 我正在使用以下 REGEX 进行重定向:
我有以下用于重定向的正则表达式(所有内容都通过索引页):
"^([a-zA-Z0-9\/\-_]+)\.?([a-zA-Z]+)?$"
重定向到 "/myapp/public/index.php?url=&extension=")
以下是使用的 URL 的示例:
http://192.168.0.191/myapp/public/customers -> Call customer controller
http://192.168.0.191/myapp/public/customers/detail/2 -> Show customer detail for id = 2
两者都很好。我的问题是下面的 URL - 为 Datagrid 对象加载客户数据:
http://192.168.0.191/myapp/public/customer/loadDtData?draw=1&columns%5B0%5D%5Bdata%5D=0&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=1&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=2&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=3&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=4&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=0&order%5B0%5D%5Bdir%5D=desc&start=0&length=25&search%5Bvalue%5D=&search%5Bregex%5D=false&_=1450111563514
如何修复正则表达式以分隔最后一个 /
之后但 ?
之前的文本,然后将 ?
之后的文本作为参数传递给应用程序。
感谢您的帮助。我使用 lighttpd 作为网络服务器。
OBS:对于 Apache,我会使用下面的 RewriteRule
来解决这个问题,但是 lighttpd 不支持 QSA:
RewriteRule ^([a-zA-Z0-9\/\-_]+)\.?([a-zA-Z]+)?$ index.php?url=&extension= [QSA,L]
在没有 QSA
标志的情况下试试这个规则:
url.rewrite = ( "^/([\w/-]+)\.?([a-zA-Z]+)?(?:\?(.*))?" => "/index.php?url=&extension=&" )