我有以下正则表达式,尽管它只选择一个变量并将其放入用户中,例如user包含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
到
http://example.com/index.php?sub=%1&user=$1&url=$2
答案 0 :(得分:1)
您的正则表达式从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]
由于您使用的是mod_proxy
标志,因此我假设您已经设置了P
。