好吧,我正在绞尽脑汁,无法让 mod_rewrite 规则发挥作用。
这是我的 apache 配置
<VirtualHost x.x.x.x:80>
DocumentRoot "/web/domain1/"
ServerName www.example.com
ServerAlias example.com
<Directory "/web/domain1/">
Options -Indexes
</Directory>
</VirtualHost>
我的目录布局
/web
|
--domain1/ (/web/domain1)
|
------report/ (/web/domain1/report)
|
-----------public/ (/web/domain1/report/public)
我正在尝试将重写规则放入 apache 配置中,这样当用户访问 www.domain1.com/report 时,他们将从 /web/domain1/report/public 文件夹获得服务,并且 URL 应保持为 www.domain1.com/report。非常感谢任何帮助。
答案1
要重定向服务器的子目录,您可以像这样使用 mod_rewrite:
RewriteCond %{REQUEST_URI} /url [NC]
RewriteRule ^(.*)$ other.example.com/$1 [R]
如果你想在不让用户看到其他网址的情况下显示其他网站的内容,则需要 mod_rewrite 和 mod_proxy,如下所示:
RewriteCond %{REQUEST_URI} /url [NC]
RewriteRule ^(.*)$ http://other.example.com/$1 [P]
根据您的环境,mod_proxy 可能需要其他配置步骤。
还可以考虑 Apache 的高级 mod_rewrite 指南。