Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
htaccess regex获取附加字段_Regex_.htaccess - Fatal编程技术网

htaccess regex获取附加字段

htaccess regex获取附加字段,regex,.htaccess,Regex,.htaccess,我有下面的正则表达式,虽然它只选择了一个变量,并将其放在user-like-user-contains-user/url中,但我如何修改它以分别在$2中获取url变量 RewriteCond %{HTTP_HOST} ^(^.*)\.example.com$ [NC] RewriteRule ^(.+/?[^/]*)$ http://example.com/index.php?sub=%1&url=$1 [P,NC,QSA,L] 我需要这个来翻译 http://sub.example.

我有下面的正则表达式,虽然它只选择了一个变量,并将其放在user-like-user-contains-user/url中,但我如何修改它以分别在$2中获取url变量

RewriteCond %{HTTP_HOST} ^(^.*)\.example.com$ [NC]
RewriteRule ^(.+/?[^/]*)$ http://example.com/index.php?sub=%1&url=$1 [P,NC,QSA,L]
我需要这个来翻译

http://sub.example.com/user/url


RewriteCond
RewriteRule
中捕获2个值的正则表达式似乎不正确

您可以使用:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$ [NC]
RewriteRule ^([^/]+)(?:/([^/]+))?/?$  http://example.com/index.php?sub=%1&user=$1&url=$2 [P,NC,QSA,L]

我假设您使用了
p
标志,所以设置了
mod_proxy

谢谢,我需要可选的参数,所以我将其更新为RewriteRule^([^/]+)/?([^/]+)/?$[p,NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$ [NC]
RewriteRule ^([^/]+)(?:/([^/]+))?/?$  http://example.com/index.php?sub=%1&user=$1&url=$2 [P,NC,QSA,L]