Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为lighttpd-regex重写url_Php_Regex_Url Rewriting_Lighttpd - Fatal编程技术网

Php 为lighttpd-regex重写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

我想将我的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.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”)
谢谢。我想这已经足够让我知道该去哪里了。小的修改是没有问题的。