利用.htaccess将域名绑定到子目录 一个虚拟空间安装多个站点

2014年09月11日 技术资料 3636 views 0

如何利用利用.htaccess绑定域名到子目录呢?

前提你的服务器要支持apache的Rewrite功能,只有这样才能使用.htaccess,具体请询问空间服务商,网上搜索到的一些方法,大都是抄袭同一个人的,


所提供的.htaccess代码如下:


# END WordPress
RewriteEngine on
# 把 itcat.cn 改为你要绑定的域名.
RewriteCond %{HTTP_HOST} ^(www.)? itcat.cn$
# 把 subfolder 改为要绑定的目录.
RewriteCond %{REQUEST_URI} !^/subfolder/
# 不要改以下两行.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 把 subfolder 改为要绑定的目录.
RewriteRule ^(.*)$ /subfolder/$1
# 把 itcat.cn 改为你要绑定的域名
# 把 subfolder 改为要绑定的目录.
# subfolder/ 后面是首页文件index.php, index.html……
RewriteCond %{HTTP_HOST} ^(www.)? itcat.cn$
RewriteRule ^(/)?$ subfolder/index.php [L]


上面的方法我试过效果不好,不完美:我在根目录放置了.htaccess文件,访问时候有个毛病就是图片无法显示:
刚才又找了一点东西,学习研究一番,发现一个很好的方法,


.htaccess写法如下,根目录的.htaccess如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^((www|blog)\.)?itcat\.cn$
RewriteCond %{REQUEST_URI} !^/blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /blog/$1
RewriteCond %{HTTP_HOST} ^((www|blog)\.)?itcat\.cn$
RewriteRule ^(/)?$ blog/index.php [L]
RewriteCond %{HTTP_HOST} ^(www\.)?itcat\.cn\.cn$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>


我要绑定的是把 itcat.cn 绑定到blog目录中,所以不仅要在根目录放置.htaccess文件,


还要在blog目录中放置.htaccess文件,blog目录中的.htaccess写法如下:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On RewriteBase /blog
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress


OK,做完上面的就OK啦,主要在本地写.htaccess并命名是不可能的,可以先保存为1.htaccess类似的名字,传到服务器上在修改成为.htaccess,安全起见还有设置属性为644。


👍好活当赏🧧