在共享服务器上,我被迫从cpanel管理域的文档根,这是错误的并且消耗大量时间。所以我将所有域重定向到一个目录,让我们说root
。一个例子:
sd1.domain.com ---> public_html/web/
sd2.domain.com ---> public_html/web/
sd1.domain2.com ---> public_html/web/
sd2.domain2.com ---> public_html/web/
当用户浏览这些网站时,我使用htaccess规则转发此网站,例如
RewriteCond %{HTTP_HOST} ^sd1.(domain1|domain2).com [NC]
RewriteCond %{REQUEST_URI} !^/sd1/.*
RewriteRule ^(.*) sd1/$1 [L]
现在这确实将请求转发到了不同的文件夹,但之后所有的网址都在最后一部分附加了sd1
这是一个例子
sd1.domain.com ---> sd1.domain.com #Works correctly
sd1.domain.com/page1.html ---> sd1.domain.com/sd1/page1.html # See the word sd1 on the middle
如何从网址中删除文件夹部分?
答案 0 :(得分:0)
如果我正确理解你的问题,你应该能够通过使用标志PT(Passthru)来实现,这会导致重写目标被传递回URL映射引擎:
RewriteCond %{HTTP_HOST} ^sd1.(domain1|domain2).com [NC]
RewriteCond %{REQUEST_URI} !^/sd1/.*
RewriteRule ^(.*) sd1/$1 [PT,L]
希望它有所帮助。