2017-01-18 71 views
1

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

现在我需要重定向基于域名的一部分(http://subdir.example.com =>http://example.com/subdir)以及我使用%1变量而不是$ 1格式找到的许多示例。我应该注意到subdir是一个任意字符串。

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

回答

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 
+0

你能不能让你的代码更普遍的,以防万一'subdir'可以是任意的字符串?我认为这是使用'%1'的正确位置,它更接近问题的核心。谢谢! –

+0

我已经将它作为一个编辑,但没有删除原来的。始终保持两种版本都适合人们测试。但是,我不是100%确定为什么要删除'subdir'。这是他们的替代品,它和'example'具有相同的用途。 – Lag

+0

哦!你已经包括我的问号:)))我希望你会用正确的代码替换它们。你可以吗? –

相关问题