当用户访问 foo.com/bar 时,他们应该会看到位于 foo.com/bar/public 的站点。公共部分必须隐藏。如何使用 .htaccess 实现这一点?
提前致谢
将这些规则放在文档根目录的 htaccess 文件中:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/bar/(.*)$
RewriteCond %{DOCUMENT_ROOT}/bar/public/%1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/bar/public/%1 -d
RewriteRule ^/?bar/(.*)$ /bar/public/$1 [L]
第一个条件检查 URI 是否以“/bar”开头,然后对请求的其余部分进行分组。接下来的 2 个条件检查请求的其余部分(由 反向引用%1
)是否映射到现有文件或目录。如果所有条件都满足,那么它会在内部将 URI 重写为/bar/public
.