apache目录访问
1. 如何修改apache的默认访问路径
操作步骤:
1、vi /etc/httpd/conf/httpd.conf
找到 DocumentRoot "/var/www/html" 这一段 #apache的根目录
把/var/www/html 这个目录改为/home/wwwroot/web1/htdocs
再找到 <Directory "/var/www/html"> #定义apache /var/www/html这个区域
把 /var/www/html改成/home/wwwroot/web1/htdocs
这样我们就把apahce的默认路径改掉了
service httpd restart #重启Apache服务器
2、访问localhost的时候,会发现访问拒绝,这是为什么呢?
主要是因为你的/home/wwwroot/web1/htdocs的权限是750,apache这个用户没有权限访问,你需要更改掉权限,可以这样改
chmod -R 755 /home/wwwroot/web1/htdocs
chown apache.apache /home/wwwroot/ -R
然后去访问 发现正常运行了(apache的用户:apache 运行apache的组:apache)
2. apache目录访问控制的参数是哪些
1.根目录的访问控制
DocumentRoot "/var/www/html"
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
解释一下:
<Directory/>表示要对文件系统的目录进行限制
Options FollowSymLinks表示跟随符号链接,关于Option的值参下表
AllowOverrideNone表示不允许覆盖,AllowOverride的值参见下表,在此例中对根目录做了非常严格的限制,即只允许跟随符号链接,不允许其他文件覆盖当前的设置。
2.文档根目录的访问控制-----(针对文档根目录"/var/www/html"进行限制。)
<Directory "/var/www/html">
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
解释一下:
OptionsIndexs
FollowSymLinks:设置允许跟随符号连接:Indexes的含义是如果要访问的文档不存在,则会显示出该目录下的文件目录清单。
AllowOverride
None:不允许覆盖当前设置,即不处理.htaccess文件。
Allow from all:允许从任何地点访问该目录
拓展一下(关于OrderAllow,Deny详解):
Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directory,Location,
Files等),用来控制目录和文件的访问授权。
所以,最常用的是:
Order Deny,Allow
Allow from All
注
意“Deny,Allow”中间只有一个逗号,也只能有一个逗号,有空格都会出错;单词的大小写不限。上面设定的含义是先设定“先检查禁止设定,没有禁止
的全部允许”,而第二句没有Deny,也就是没有禁止访问的设定,直接就是允许所有访问了。这个主要是用来确保或者覆盖上级目录的设置,开放所有内容的访
问权。
按照上面的解释,下面的设定是无条件禁止访问:
Order Allow,Deny
Deny from All
如果要禁止部分内容的访问,其他的全部开放:
Order Deny,Allow
Deny from ip1 ip2
或者
Order Allow,Deny
Allow from all
Deny from ip1 ip2
apache
会按照order决定最后使用哪一条规则,比如上面的第二种方式,虽然第二句allow允许了访问,但由于在order中allow不是最后规则,因此还
需要看有没有deny规则,于是到了第三句,符合ip1和ip2的访问就被禁止了。注意,order决定的“最后”规则非常重要,下面是两个错误的例子和
改正方式:
Order
Deny,Allow
Allow from all
Deny from domain.org
错误:想禁止来自domain.org的访问,但是deny不是最后规则,apache在处理到第二句allow的时候就已经匹配成功,根本就不会去看第三句。
解决方法:Order Allow,Deny,后面两句不动,即可。
Order
Allow,Deny
Allow from ip1
Deny from all
错误:想只允许来自ip1的访问,但是,虽然第二句中设定了allow规则,由于order中deny在后,所以会以第三句deny为准,而第三句的范围中又明显包含了ip1(allinclude ip1),所以所有的访问都被禁止了。
解决方法一:直接去掉第三句。
解决方法二:
Order Deny,Allow
Deny from all
Allow from ip1
3. 如何实现访问apache时的目录浏览功能
步骤如下: 1、打开Eclipse。 2、点击菜单栏的“Window”,然后选择“Preferences”。 3、点击弹出窗口的“Server”,然后选择“Runtime Environment”,然后点击右边的“Add”按钮。 4、选择弹出窗口上的“Apache”,然后选择Tomcat版本,然后单击“Next”
4. apache怎么禁止用户访问某个目录下的某种类
可以通过修改Apache配置文件httpd.conf来实现禁止列出目录/文件列表,方法如下
【apache配置禁止访问】
1. 禁止访问某些文件/目录
增加Files选项来控制,比如要不允许访问 .inc 扩展名的文件,保护php类库:
<Files ~ ".inc$">
Order allow,deny
Deny from all
</Files>
禁止访问某些指定的目录:(可以用 <DirectoryMatch> 来进行正则匹配)
<Directory ~ "^/var/www/(.+/)*[0-9]{3}">
Order allow,deny
Deny from all
</Directory>
通过文件匹配来进行禁止,比如禁止所有针对图片的访问:
<FilesMatch .(?i:gif|jpe?g|png)$>
Order allow,deny
Deny from all
</FilesMatch>
针对URL相对路径的禁止访问:
<Location /dir/>
Order allow,deny
Deny from all
</Location>
针对代理方式禁止对某些目标的访问(<ProxyMatch> 可以用来正则匹配),比如拒绝通过代理访问cnn.com:
<Proxy http://cnn.com/*>
Order allow,deny
Deny from all
</Proxy>
2. 禁止某些IP访问/只允许某些IP访问
如果要控制禁止某些非法IP访问,在Directory选项控制:
<Directory "/var/www/web/">
Order allow,deny
Allow from all
Deny from 10.0.0.1 #阻止一个IP
Deny from 192.168.0.0/24 #阻止一个IP段
</Directory>
只允许某些IP访问,适合比如就允许内部或者合作公司访问:
<Directory "/var/www/web/">
Order deny,allow
Deny from all
All from example.com #允许某个域名
All from 10.0.0.1 #允许一个iP
All from 10.0.0.1 10.0.0.2 #允许多个iP
Allow from 10.1.0.0/255.255.0.0 #允许一个IP段,掩码对
All from 10.0.1 192.168 #允许一个IP段,后面不填写
All from 192.168.0.0/24 #允许一个IP段,网络号
</Directory>
Apache:解决办法;
<Directory "/home/domain/public_html">
Options -Indexes FollowSymLinks
AllowOverride All
<Files ~ ".txt">
Order allow,deny
Deny from all
</Files>
</Directory>
5. apache配置目录访问的权限问题
你设置都允许都就可以了
6. apache如何设置浏览更目录文件夹
首先:Linux下默认安装后的Apache根目录在/var/www/html下,我们需要对目录进行访问
第一 :创建自己需要更改的新目录,并更改宿主权限为apache用户 chown -R apache:apache /mnt/chaodiquan.com/www
第二:停止Apache服务 service httpd stop
第三:修改Apache的配置文件,默认在/etc/httpd/conf/httpd.conf,找到Document Root修改为你需要权限
第四:保存配置文件后,重启Apache服务,你的Apache目录更改就会生效了。
7. 怎么访问apache目录下的站点
从理论上来说,是可以更改的,由于本人从未有过如此想法,当时就未作过多探索。刚才,在进入文件夹时突然记起这个问题来,就顺便实现了一下,打开Apache的配置文件httpd.conf找到了
8. 本地apache服务器,浏览的是目录,怎样解决
默认情况下,Apache服务器会列出网站目录中的文件及子目录,这对于用于发布站点的服务器来说是很不安全的,所以需要禁用,修改httpd.conf配置文件中的对应设置即可。
问题的现象:
如果你的网站目录下有一个xxx的文件夹,如果xxx文件夹下没有默认页面(index.*等),当用户使用URL:http://你的网址/a/ 访问你的网站的话,Apache会把xxx文件夹里的内容全列出来。
解决方法:
要禁止此功能,修改httpd.conf
找到下面这一句删除掉Indexes即可。
Options Indexes FollowSymLinks
配置示例:
<Directory "E:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
# 就是这一行,只去掉indexes也可
#Options Indexes FollowSymLinks
Options FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
建议默认情况下,设置APACHE禁止用户浏览目录内容。