【估计没有一个人能够做的了这个题。。。。。。。。】
时间:2010-07-12
来源:互联网
现在遇到的问题是 文件夹指向主域名。
服务器和网站的信息:
网站域名:www.aaa.com
网站服务器:Apache Linux (支持htaccess)
网站根目 /public_html/ 下的文件夹总共四个 加一个文件 .htaccess 总共五个东西。
● root -- 存放主站程序
● bbs -- 存放BBS程序
● home -- 存放空间程序
● upload -- 存放上传的文件
● .htaccess -- htaccess 重写的内容。
这个时候.htaccess 里面的内容(全部内容):
PHP code
<IfModule mod_expires.c> ExpiresByType text/html A1 </IfModule> <IfModule mod_rewrite.c> RewriteEngine On #RewriteBase / RewriteCond %{HTTP_HOST} ^aaa\.com$ [NC] RewriteRule ^(.*)$ http://www.aaa.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} !bbs.aaa\.com$ [NC] RewriteRule ^bbs/(.*)$ http://bbs.aaa.com/$1 [L] RewriteCond %{HTTP_HOST} !home\.aaa\.com$ [NC] RewriteRule ^home/(.*)$ http://home.aaa.com/$1 [L] RewriteCond %{REQUEST_URI} !^/root/.* RewriteCond %{HTTP_HOST} =www.aaa.com RewriteRule ^(.*) /root/$1 RewriteRule ^opensource/([^\/]+)\.html$ detail.php?filename=$1 [L] RewriteRule ^cat([a-z]+)-([^\/]+)/?$ search.php?rewritefn=$1&$1=$2&page=$3 [L] RewriteRule ^cat([a-z]+)-([^\/]+)/([0-9]+).html$ search.php?rewritefn=$1&$1=$2&page=$3 [L] </IfModule> ErrorDocument 301 /err.php?e=301 ErrorDocument 403 /err.php?e=403 ErrorDocument 404 /err.php?e=404 ErrorDocument 500 /err.php?e=500
这个时候测试的结果:
● 访问 www.aaa.com/bbs/ 自动跳转到 bbs.aaa.com ,但是如果访问 www.aaa.com/bbs 那么浏览器header 只是 301 而已,并没有执行跳转,发送了一个 301 的头部。
● 访问 www.aaa.com/home/ 自动跳转到 home.aaa.com ,但是如果访问www.aaa.com/home,和访问www.aaa.com/bbs一样,浏览器只是接收到了 header 301 的请求,但是并没有执行跳转。
● 访问 www.aaa.com 的内容却是是 /public_html/root文件夹里面的内容,但是打开 www.aaa.com/root/ 却并没有访问到 /public_html/root/root/ 里面的内容。而是直接访问了 /public_html/root/文件夹里面的内容
● 访问 www.aaa.com/upload/ 里面的内容却仍旧可以打开的。但是按照道理来说 访问www.aaa.com/upload/的内容应该是指向 /public_html/root/upload/ 里面的内容的,因为 upload 文件夹并没有在 /public_html/.htaccess 里面做重写的。
现在需要的是:
◆ BBS 和 HOME的已经做到了
◆ 访问 www.aaa.com 应该得到的内容是 /public_html/root/ 文件夹里面的内容,所以按照道理,访问 www.aaa.com/root/ 应该得到的内容是在 /public_html/root/root/ 文件夹里面,而不是 /public_html/root/ 里面。
这个能够实现吗?
我找了很久,基本上都是这样的粘贴:
RewriteCond %{REQUEST_URI} !^/root/.*
RewriteCond %{HTTP_HOST} =www.aaa.com
RewriteRule ^(.*) /root/$1
但是假如在主域名(www开头)背后输入 /root/ 会发现访问的其实还是 public_html/root/ 里面的东西,而不是 public_html/root/root 里面的东西。
作者: default7 发布时间: 2010-07-12
作者: xuzuning 发布时间: 2010-07-13
作者: theforever 发布时间: 2010-07-13
作者: kyzy_yy_pm 发布时间: 2010-07-13
1. RewriteRule ^bbs/(.*)$ http://bbs.aaa.com/$1 [L]
应该改成
RewriteRule ^/bbs(.*)$ http://bbs.aaa.com/$1 [L]
这样,访问/bbs/时,就不会301了
2. RewriteCond %{REQUEST_URI} !^/root/.*
RewriteCond %{HTTP_HOST} =www.aaa.com
RewriteRule ^(.*) /root/$1
同样,注意/
RewriteCond %{REQUEST_URI} !^/root.*
RewriteCond %{HTTP_HOST} =www.aaa.com
RewriteRule ^/(.*) /root/$1
作者: icy_csdn 发布时间: 2010-07-14

作者: zyl_leilei 发布时间: 2010-07-14
应该是你没有正确处理/的问题
1. RewriteRule ^bbs/(.*)$ http://bbs.aaa.com/$1 [L]
应该改成
RewriteRule ^/bbs(.*)$ http://bbs.aaa.com/$1 [L]
这样,访问/bbs/时,就不会301了
2. RewriteCond %{REQUEST_URI} !^/root/.*
Rewrite……
你写的明显错误了哦。
假如存在 www.aaa.com/bbs1/ 那么也会自动跳转到 bbs.aaa.com/1/ 其实是错误的。
作者: default7 发布时间: 2010-07-14
作者: default7 发布时间: 2010-08-07
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28