apache排除特定目录地址

post by rocdk890 / 2013-4-18 17:04 Thursday linux技术
  根据这篇文章使用.htaccess实现目录跳转的代码,进一步的改进而来的,同事看到http://ip/a这个url地址之后,要求改成访问a目录,url地址就是http://ip,b目录是软链接在a目录中,还要求访问a目录是有apache身份认证的,而访问http://ip/b是没有身份认证的,下面就是我的解决方案.
  系统:centos 5.5
  环境:lamp环境
1.修改apache配置文件
vi /etc/httpd/conf/httpd.conf
NameVirtualHost 192.168.1.104:80

<VirtualHost 192.168.1.104:80>
ServerAdmin rocdk890@gmail.com
directoryIndex  index.html index.php index.htm index.shtml login.php
ServerName 192.168.1.104
DocumentRoot /var/www/vhosts/wwwroot/a
<Directory "/var/www/vhosts/wwwroot/a">
    Options -Indexes

    AllowOverride All

    Order allow,deny
    Allow from all

</Directory>
</VirtualHost>
把这两项指向a目录
DocumentRoot /var/www/vhosts/wwwroot/a
<Directory "/var/www/vhosts/wwwroot/a">

保存后,重启apache.
service httpd restart

2.去a目录下添加修改.htaccess文件
vi /var/www/vhosts/wwwroot/a/.htaccess
AuthUserFile    /var/www/vhosts/wwwroot/.htpasswd
AuthName        "Please Enter Your Password"
AuthType        Basic
Require         valid-user

3.去b目录下添加修改.htaccess文件
vi /var/www/vhosts/wwwroot/b/.htaccess
Satisfy Any
Order Deny,Allow
Allow from all
这样就可以让b目录不被身份认证限制住.

4.软链b目录到a目录中
ln -s /var/www/vhosts/wwwroot/b/ /var/www/vhosts/wwwroot/a/b
点击查看原图

5.验证
点击查看原图
点击查看原图
好了,大家可以看到访问http://ip是有apache身份认证的,访问http://ip/b是没有apache身份认证的.
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-347.html

标签: apache centos linux url 身份认证 basic认证 排除 地址 特定

评论: