我想将我的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" )