url 重写 lighttpd - 正则表达式
url rewrite for lighttpd - regex
我想在没有获取参数的情况下将我的网址转换为短网址,但第一次尝试时,我会将正则表达式减少为只有一种情况:
有许多正常的网址不应该受到影响。我想重写 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=&id= [L,QSA]
这将匹配以下任一网址:
/abcd/123
/abcd/123/
/abcd456/6789
/abcd456/6789/
编辑:
在 LigthHttpd 中使用这个等效规则:
url.rewrite = ( "^/(\w+)/(\d+)/?(?:\?(.*))?$" => "/index.php?user=&id=&" )
我想在没有获取参数的情况下将我的网址转换为短网址,但第一次尝试时,我会将正则表达式减少为只有一种情况:
有许多正常的网址不应该受到影响。我想重写 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=&id= [L,QSA]
这将匹配以下任一网址:
/abcd/123
/abcd/123/
/abcd456/6789
/abcd456/6789/
编辑:
在 LigthHttpd 中使用这个等效规则:
url.rewrite = ( "^/(\w+)/(\d+)/?(?:\?(.*))?$" => "/index.php?user=&id=&" )