场景:虚拟主机根目录下安装了wordpress,同时根目录下创建了多个子目录,用于搭建其他站点,开启伪静态,.htaccess文件中定义了对应域名访问对应子目录,发现htaccess会自动还原如下:

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

搜索类似问题,应该是点击wordpress固定链接以后.htaccess文件被自动还原
尝试在#END WordPress后面(另起一行),添加自定义的域名-目录访问规则:

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# 绑定www.test1.com 到 test1 目录

RewriteCond %{HTTP_HOST} ^www.test1.com$ [NC]
RewriteCond %{REQUEST_URI} !^/test1/
RewriteRule ^(.*)$ test1/$1?Rewrite [L,QSA]

# 绑定www.test2.com到 test2目录

RewriteCond %{HTTP_HOST} ^www.test2.com$ [NC]
RewriteCond %{REQUEST_URI} !^/test2/
RewriteRule ^(.*)$ test2/$1?Rewrite [L,QSA]

</IfModule>

经测试,暂时未出现问题,特此记录一下。
补充说明:一台虚拟主机搭建多个站点,实现多个域名访问对应虚拟主机跟目录下子目录站点,前提条件需要开启伪静态,PHP网站伪静态使用的是Apache的Rewrite模块。一般主要是通过具体定义好.htaccess文件来实现。

标签: htaccess, 虚拟主机搭建多个站点, rewrite

添加新评论