故障現象: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>