万网虚拟主机批量虚拟空间

折腾了快一天,各种尝试,总算是搞通了万网的虚拟主机的一些设置和限制了。

  • 万网的虚拟主机宿主操作系统应该用的是CentOS 6(从php探针中拿到的内核版本确定的)
  • apache版本应该是2.2。centos6官方仓库带的版本就是2.2,在加上不支持Require all granted这种在2.4才有的配置
  • 启用了AllowOverride选项,所以允许在htdocs下放一个.htaccess

明白了这些限制之后,大致就知道.htaccess应该怎么写了。写之前务必确认你的指令可以工作在.htaccess,以及被apache 2.2支持。

已经一年都没玩过apache的配置了,2.2版本的配置都快忘光了,各种google查文档,七拼八凑之后最后贴配置:

FileETag None
ExpiresActive On
ExpiresDefault "access plus 1 day"

RewriteEngine on
RewriteBase /

# Break rewrite loop condition
RewriteCond %{HTTP_HOST}           ^万网主机名\.my3w\.com$  [OR]
RewriteCond %{HTTP_HOST}           ^万网主机ip$          [OR]
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^                      -                           [L]

# Redirect example.com to www.example.com
RewriteCond %{HTTP_HOST}           ^example\.com$
RewriteRule ^(.*)$                http://www.example.com$1  [R=301,L]

# Rewrite all the other domains to self dir
RewriteRule ^(.*)                  %{HTTP_HOST}/$1  [DPI]

# Treat /
RewriteCond %{REQUEST_URI}         !/$
RewriteCond %{REQUEST_FILENAME}    -d
RewriteRule ^(.*)$                 $1/                         [DPI]

尽管apache支持不少批量虚拟主机的指令,比如VirtualDocumentRoot,可惜不能写在.htaccess,只能用Rewrite

为了便于自己调试,所以对于万网主机名和ip不进行URL重写,其余域名绑定过来的一律走htdocs/%{HTTP_HOST}

对于某些域名,如果希望控主机头跳转到www,就用中间那段配置即可:

# Redirect example.com to www.example.com
RewriteCond %{HTTP_HOST}           ^example\.com$
RewriteRule ^(.*)$                http://www.example.com$1  [R=301,L]

最后,只要把你的网站扔到htdocs/%{HTTP_HOST}即可。

转载于:https://my.oschina.net/abcfy2/blog/784935

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值