.htaccess重写规则:%1和$ 1变量之间的差异是什么(百分比对美元符号)?

时间:2017-01-18 19:09:29

标签: apache .htaccess mod-rewrite

到目前为止,我所有的重写规则都使用$ 1,$ 2 ...变量来形成一个干净的URL。

现在我需要根据域名的一部分(http://subdir.example.com => http://example.com/subdir)进行重定向,并且我发现使用%1变量而不是$ 1格式的许多示例。我应该注意subdir是一个任意字符串。

这对我来说还不清楚。我试图在一两个小时内找到$ 1和%1变量的含义,但仍然找不到任何有用的东西。

1 个答案:

答案 0 :(得分:1)

您可以在.htaccess

中使用此功能
RewriteEngine On

RewriteCond %{HTTP_HOST} ^subdir\.example\.com$
RewriteCond %{REQUEST_URI} !^/subdir/
RewriteRule (.*) /subdir/$1

确保在测试之前清除缓存。

来自OP的建议编辑:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(.*)\.example\.com$
RewriteCond %{REQUEST_URI} !^/????/
RewriteRule (.*) /????/$1