1

在共享服务器上,我被迫从 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]

现在这确实将请求转发到不同的文件夹,但之后所有的 url 都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

如何从网址中删除文件夹部分?

4

1 回答 1

0

如果我正确理解了您的问题,您应该能够通过使用标志 PT (Passthru) 来做到这一点,这会导致重写目标被传递回 URL 映射引擎:

RewriteCond %{HTTP_HOST}   ^sd1.(domain1|domain2).com [NC]
RewriteCond %{REQUEST_URI} !^/sd1/.*
RewriteRule   ^(.*)  sd1/$1  [PT,L]

希望能帮助到你。

于 2013-07-31T15:22:44.773 回答