url rewrite for lighttpd - regex


url rewrite for lighttpd - regex

我想将我的url转换为不带get参数的短url,但第一次尝试时,我会将regex减少到只有一种情况:

有许多正常的url不应该受到影响。我唯一想重写url的情况是用户配置文件页面。

目前它们看起来是这样的:

www.dummy.com/index.php?user=USERNAME&id=USERID

目标方案如下:

www.dummy.com/USERNAME/USERID

用户名大多可以包含任何字符(不带/),而不仅仅是a-z/a-z。

我从来都不擅长正则化,也不知道如何处理这个问题。欢迎提出任何建议。

不会有对文件夹(www.dummy.com/folder/subfolder)的请求,但确认用户ID是一个整数值会很好,但不是必须的。

您可以在DOCUMENT_ROOT/.htaccess文件中使用以下代码:

RewriteEngine On
RewriteBase /
RewriteRule ^('w+)/('d+)/?$ index.php?user=$1&id=$2 [L,QSA]

这将匹配以下任一URL:

/abcd/123
/abcd/123/
/abcd456/6789
/abcd456/6789/

编辑:

在LigthHttpd中,使用以下等效规则:

url.rewrite = ( "^/('w+)/('d+)/?(?:'?(.*))?$" => "/index.php?user=$1&id=$2&$3" )