故障现象:apache下某目录多站点调不出去

 故障简述:公司网站主目录下有bbs 和几个项目的子文件夹需要配置二级域名,开始的时候只有bbs他没有引用上级目录的文件,所以没发现这问题。后来加了几个根目录下的子文件夹为二级域名,发现所有调用上级目录的链接都用不了。

 处理过程:首先是改apache下的php目录限制,改完之后发现程序里面include的文件都可以用,但是调用的一些上层目录连接却依然不能用,显示404.后来在网上找了一下apache配置二级域名的问题,一种比较靠谱的方式是用rewrite的方式调用vhost.map来实现,但是配置后发现问题依旧。

            后来左思右想,用chrome查看源码的时候发现所有请求的东西路径都为二级域名的路径,后来想想应该是http的头里面带着你的域名所以哥们跳不出去只会在规定的servertoot里面找,当然就没有了。查到原因后,就搜了一下,找到了apache做目录映射的方法,照着做了一个果然行了。下面贴一下配置及注意事项

 

注意事项:

1  检查是否编译了mod_alisa模块

2  所映射的目录绝对路径后不能加/

3 如果是内建的.c文件请一定要把配置写在<ifmodule>里面

 

 

我是放在我的vhost配置文件里面的

 

 

<VirtualHost *:80>

DocumentRoot /data/www/xxx/xxxx

# 主目录为该二级域名配置文件

ServerName blcx.dakawang.com

# 绑定的二级域名

DirectoryIndex index.php

ErrorDocument 404 ../404.html

<IfModule mod_deflate.c>

DeflateCompressionLevel 7

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php

AddOutputFilter DEFLATE css js html htm gif jpg png bmp php

</IfModule>

<IfModule mod_alias.c>

Alias /xxx "/data/www/xxx

#要映射的路径与该路径的绝对路径

</IfModule>

</VirtualHost>