我的网站设置如下:
public_html >
/prod/ (http://prod.domain.com)
/test/ (http://test.domain.com)
/dev/ (http://dev.domain.com)
用于生产,测试和开发环境。
使用htaccess,http://domain.com的所有流量都会重写为http://prod.domain.com,但不会重定向(以便地址栏中仍然可以看到http://domain.com)。
问题是,网站上的相对内容,例如指向" ../../ contact"的链接现在打开http://prod.domain.com/contact,而不是http://domain.com/contact。
有没有办法,真正隐藏这个" prod"来自网址的子域名?例如,如果请求http://domain.com,请将用户重定向到http://prod.domain.com,并仍然将其重写为http://prod.domain.com?
我的htaccess:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
## Set environment
SetEnvIfNoCase HOST ^test\. WP_ENV=testing
SetEnvIfNoCase HOST ^dev\. WP_ENV=development
SetEnvIfNoCase HOST ^acc\. WP_ENV=production
SetEnvIfNoCase HOST (^prod\.|^www\.|^([^\.]+)\.([^\.]+)$) WP_ENV=production NO_AUTH=1
## Require HTTP auth for test
AuthType Basic
AuthName "TESTING"
AuthUserFile "/path/to/htpasswd/hello"
Order Deny,Allow
Deny from all
Satisfy any
Allow from localhost
Allow from 127.0.0.1
Require valid-user
Allow from env=NO_AUTH
## Excludes
RewriteRule ^(test)($|/) - [L]
## Remove www
RewriteCond %{HTTP_HOST} ^(www.*)$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [QSA,R=301,L]
## Redirect Old Domain to New Domain
RewriteCond %{HTTP_HOST} ^olddomain.org$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.org$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
## Deliver production
RewriteRule ^(.*)$ http://prod.domain.com/$1 [P,L]
不幸的是我们在共享主机上,因此无法访问cmd!
答案 0 :(得分:0)
您可以使用符号链接:
ln -s /public_html/prod /public_html
。
如果您想从主域访问dev文件,可以简单地更改符号链接。
其他例子:
ln -s "prod" <- "main"
mklink "main" -> "prod"