Php 为lighttpd-regex重写url
我想将我的URL转换为不带get参数的短URL,但第一次尝试时,我将regex简化为一种情况: 有许多正常的URL不应该受到影响。我想重写URL的唯一情况是用户配置文件页面 目前它们看起来是这样的:Php 为lighttpd-regex重写url,php,regex,url-rewriting,lighttpd,Php,Regex,Url Rewriting,Lighttpd,我想将我的URL转换为不带get参数的短URL,但第一次尝试时,我将regex简化为一种情况: 有许多正常的URL不应该受到影响。我想重写URL的唯一情况是用户配置文件页面 目前它们看起来是这样的: www.dummy.com/index.php?user=USERNAME&id=USERID www.dummy.com/USERNAME/USERID 目标方案如下所示: www.dummy.com/index.php?user=USERNAME&id=USERID www
www.dummy.com/index.php?user=USERNAME&id=USERID
www.dummy.com/USERNAME/USERID
目标方案如下所示:
www.dummy.com/index.php?user=USERNAME&id=USERID
www.dummy.com/USERNAME/USERID
用户名可以包含大多数字符(不带/),而不仅仅是a-z/a-z
我从来没有真正擅长regexing,也不知道如何处理这个问题。欢迎提出任何建议
不会有对文件夹(www.dummy.com/folder/subfolder)的请求,但确认userid是整数值会很好,但不是必需的。您可以在
文档的根目录中使用此代码。
文件:
RewriteEngine On
RewriteBase /
RewriteRule ^(\w+)/(\d+)/?$ index.php?user=$1&id=$2 [L,QSA]
这将匹配以下URL之一:
/abcd/123
/abcd/123/
/abcd456/6789
/abcd456/6789/
编辑: 在LIGTHTTPD中,使用此等效规则:
url.rewrite = ( "^/(\w+)/(\d+)/?(?:\?(.*))?$" => "/index.php?user=$1&id=$2&$3" )
谢谢但我用的是lighttpd。.htaccess文件是否与lighty兼容?注:用户名可以包含大多数字符。我会检查轻型https文档,但我认为它应该得到支持。为了支持任何字符,我将更改答案。在
LightHTTPD
中,答案将是:url.rewrite=(“^/(\w+)/(\d+)/(?:\?(*))?$”=>“/index.php?user=$1&id=$2&$3”)
谢谢。我想这已经足够让我知道该去哪里了。小的修改是没有问题的。