.htaccess apache2重写规则(mod_rewrite)存在问题

.htaccess apache2重写规则(mod_rewrite)存在问题,.htaccess,mod-rewrite,apache2,.htaccess,Mod Rewrite,Apache2,我对mod_重写和apache2有问题。我想这样做: domain.com/{username}/{everything\u else}到domain.com/users/{username}/{everything\u else} {username}是第一个“/”之前的所有内容,{everything_else}是第一个“/”simbol之后的所有内容(可能包含其他“/”,确切数字各不相同) 我尝试了以下方法,但没有成功: 重写规则^(.*)/(.*)$/users/$1/$2[L,NC]

我对mod_重写和apache2有问题。我想这样做:

domain.com/{username}/{everything\u else}到domain.com/users/{username}/{everything\u else}

{username}是第一个“/”之前的所有内容,{everything_else}是第一个“/”simbol之后的所有内容(可能包含其他“/”,确切数字各不相同)

我尝试了以下方法,但没有成功:

重写规则^(.*)/(.*)$/users/$1/$2[L,NC]

重写规则^([^/]+)/(.*)$/users/$1/$2[L,NC]

只有当{everything_else}不包含其他斜杠时,这才有效

重写规则^([^/]+)/([^/]*)用户/$1/$2[L,NC]

有可能做出这样的东西吗?

试试看:

RewriteRule ^(.+?)/(.*)$ /users/$1/$2
那个?在第一个捕获组中,意味着:捕获尽可能少的字符(直到第一个/)。其余部分按原样捕获。

尝试一下:

RewriteRule ^(.+?)/(.*)$ /users/$1/$2

那个?在第一个捕获组中,意味着:捕获尽可能少的字符(直到第一个/)。其余部分按原样捕获。

谢谢您的建议!我尝试了此操作,但收到了以下错误消息:“由于可能的配置错误,请求超出了10个内部重定向的限制。如有必要,请使用'LimitInternalRecursion'增加限制。使用'LogLevel debug'获取回溯”。可能问题是,由于无限循环,因为文件夹“用户”匹配规则,在第一次重定向后再次开始循环。。有没有办法将以/users/*开头的请求从循环中排除?谢谢您的建议!我尝试了此操作,但收到了以下错误消息:“由于可能的配置错误,请求超出了10个内部重定向的限制。如有必要,请使用'LimitInternalRecursion'增加限制。使用'LogLevel debug'获取回溯”。可能问题是,由于无限循环,因为文件夹“用户”匹配规则,在第一次重定向后再次开始循环。。有没有办法将以/users/*开头的请求从循环中排除?