【发布时间】:2011-09-11 16:25:51
【问题描述】:
基本上我的问题是这样的;我有一个 MVC 系统,可以将所有请求重定向到我网站上的 index.php。我的 htaccess 文件中有一个重写规则来处理这些请求,如下所示:
RewriteRule ^([a-zAZ\_\-]+)\/([a-zA-Z\_\-]+)\/([^\/?]*) /?module=$1&class=$2&event=$3
将网址翻译成这些类型的网址
http://example.com/users/login/
http://example.com/users/info/me
我的问题是我还希望像这样在 URL 中应用和使用 GET 变量
http://example.com/users/login/?var1=val1&var2=val2
http://example.com/users/info/me?var1=val2...
我已经编写了两个不同的正则表达式,它们在我的工作台 (expresso) 中运行良好,我已经在 PHP 中对它们进行了测试,但是它们拒绝在 htaccess 中运行。它们不是特别复杂,我试过了:
^([a-zAZ_\-]+)\/([a-zA-Z_\-]+)\/([^\/\?]*)[\?]*(.*) /?module=$1&class=$2&event=$3&$4
and
^([a-zAZ_\-]+)\/([a-zA-Z_\-]+)\/([^\/\?]*)(?(?=\?)\?(.+)) /?module=$1&class=$2&event=$3&$4
这些都不起作用,我绞尽脑汁想知道为什么。从本质上讲,它只是不识别第四组并且没有返回任何东西
对此的任何帮助将不胜感激,因为这让我发疯了。
提前致谢, 鲁珀特 S.
【问题讨论】:
标签: regex .htaccess mod-rewrite url-rewriting get