我想使用单个域在单个虚拟主机上实现 TEST、CERT 和 PROD 网页。这些网站对第一个子域使用通配符。
我有以下代码:
# for TEST
RewriteCond %{HTTP_HOST} (.*).test.domain.com
RewriteCond %{REQUEST_URI} !^/directory3
RewriteRule ^(.*)$ /directory3/$1 [L]
# for CERT
RewriteCond %{HTTP_HOST} (.*).cert.domain.com
RewriteCond %{REQUEST_URI} !^/directory2
RewriteRule ^(.*)$ /directory2/$1 [L]
# for PROD
RewriteCond %{HTTP_HOST} (.*).domain.com
RewriteCond %{REQUEST_URI} !^/directory1
RewriteRule ^(.*)$ /directory1/$1 [L]
这有 3 个问题:
1)浏览器地址栏中的 URL 已更改,因此用户可以看到新的 URL。我希望用户看到原始类型的 URL
显示:
http:\\subdomain1.cert.com\directory2
代替:
http:\\subdomain1.cert.com
2) TEST 和 CERT 重写具有Internal Server Error
.
当我替换固定子域的通配符时它工作正常
3) PROD RweriteCond 总是有效的(对于 CERT 和 TEST 子也是如此。这意味着它总是被转发到 directory1