Apache 设置禁止访问网站目录
Apache默认在当前目录下没有 index.html 入口文件就会显示网站根目录,让网站根目录文件全部暴露出来,是一件非常危险的事。
例如:客户可以直接打开文件,看到源代码、数据库密码、隐藏页面等,泄露了一些保密文件,会引起非常严重安全问题!
例如,访问米扑网站根目录: https://mimvp.com 会列出根目录
本文将详细介绍如何操作禁止显示apache网站根目录
进入apache的配置文件 httpd.conf 找到:
vim /etc/httpd/conf/httpd.conf
Options Indexes FollowSymLinks
修改为:
Options FollowSymLinks
修改后结果如下:
<Directory "/var/www/html">
# Options None
# Options Indexes FollowSymLinks
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
如上,将Indexes去掉,Indexes表示若当前目录没有index.html就会显示目录结构。
重启Apache服务器 /etc/init.d/httpd restart
再访问米扑网站,就没问题了: https://mimvp.com
准备知识点
AllowOverride参是指明Apache服务器是否去找.htacess文件作为配置文件
如果设置为none,那么服务器将忽略.htacess文件,可能导致全部 http 无法跳转到 https
如果设置为All,那么所有在.htaccess文件里有的指令都将被重写。
1. 禁止访问某些文件/目录(文件后缀)
增加Files选项来控制,比如不允许访问 .inc 扩展名的文件,保护php类库:
<Files ~ ".inc$">
Order allow,deny
Deny from all
</Files>
通过文件匹配来进行禁止(文件后缀)
比如禁止所有针对图片的访问:
<FilesMatch .(?i:gif|jpeg|png)$>
Order allow,deny
Deny from all
</FilesMatch>
禁止访问某些指定的目录(绝对路径)
可以用 <DirectoryMatch> 来进行正则匹配)
<Directory ~ "^/var/www/(.+/)*[0-9]{3}">
Order allow,deny
Deny from all
</Directory>
针对URL相对路径的禁止访问(相对路径)
<Location /dir/>
Order allow,deny
Deny from all
</Location>
针对代理方式禁止对某些目标的访问
(<ProxyMatch> 可以用来正则匹配),比如拒绝通过代理访问mimvp.com
<Proxy http://mimvp.com/*>
Order allow,deny
Deny from all
</Proxy>
配置示例
<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禁止用户浏览目录内容。
2. Apache拦截HTTP请求
有些时候,为了保证Web网站的安全性,将Apache服务器中一些危险的HTTP请求过滤掉
例如过滤掉禁止 PUT、DELETE 等请求方法,也可以让系统不作处理的无效请求过滤,例如TRACE、OPTIONS请求,以防入侵者发送大量请求给服务器,造成系统负担。
Apache服务器可以通过修改http.conf文件来达到上述目的,Apache核心指令中:
<Limit>/<LimitExcept>配置段用于对指定的HTTP方法(GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE)进行访问控制
<Directory>/<Files>/<Location>配置段则是用于将它们封装起来的指令集作用于指定的目录、文件或网络空间。
因此,将<Limit>/<LimitExcept>配置段和<Directory>/<Files>/<Location>配置段联合起来,就能实现Apache对指定HTTP请求进行访问控制的功能。
它们的配置形式(以<Directory>和<Limit>/<LimitExcept>说明)可以表示如下:
<Directory "/var/www/html"> <Limit DELETE TRACE OPTIONS> #禁止DELETE TRACE OPTIONS请求 Order allow,deny Deny from all </Limit> </Directory>
上述配置表示,对于任何用 DELETE、TRACE、OPTIONS 方法访问 /var/www/html 目录里资源文件的请求都会被apache服务器拒绝(403 Fobidden)。
还可以这样表示:
<Directory "/var/www/html"> <LimitExcept GET POST HEAD> #禁止除GET POST HEAD以外的请求 Order allow,deny Deny from all </Limit> </Directory>
这段配置表示,对于任何用 GET、POST、HEAD 方法访问 /var/www/html 目录里资源文件的请求都会被apache服务器拒绝(403 Fobidden)。
相当于前一个(<Limit>)是黑名单策略,后一个(<LimitExcept>)是白名单策略。
关于这段配置有两点需要注意的地方:
1、配置完httpd.conf文件后,必须重启apache服务,配置才能生效。
2、<Limit>/<LimitExcept>配置段里的Order、Allow、Deny指令需加载 mod_authz_host.so 模块,否则无法使用
3. Apache Rewrite url 重定向功能的简单配置
Rewrite url重定向就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。
平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链,防特定资源攻击(如高并发访问mp3、video、图片等大资源文件)等
1)Apache Rewrite 配置方式
Apache下的Rewrite配置主要有两种
1、一种是针对整个apache服务器的配置,此种配置的Rewrite规则是直接在 httpd.conf 下书写。
配置步骤如下:
(1) 去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号;
(2) 然后再在httpd.conf中书写如下规则:
RewriteEngine on
RewriteRule ^/t_(.*).html$ /test.php?id=$1
#当访问任何以t_开头,以.html结尾的文件时,将用 $1与(.*)匹配的字符替换后,访问相应的test.php页面
2、另一种是针对apache服务器下的某一目录的配置,此种配置的Rewrite规则需在此目录下建立一个.htaccess文件来书写。
配置步骤如下:
(1) 去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号;
(2) 修改httpd.conf文件中的"AllowOverride None"为"AllowOverride all",同时最好将Options也置为"all",否则可能会出问题。
(3) 在目录中建立.htaccess文件,并用记事本打开,书写如下规则:
RewriteEngine on
RewriteRule ^/t_(.*).html$ /test.php?id=$1
2)Apache Rewrite 规则的书写
RewriteEngine on
RewriteRule ^/test([0-9]*).html$ /test.php?id=$1 // 以test开头、.html结尾的URL,[0-9]*匹配到$1
RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]
# 当我们访问的地址不是以www.mimvp.com开头的,那么执行下一条规则
# NC是指在匹配时,不区分大小写,因为在Apache本身对大小写是敏感的
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.mimvp.com [NC]
RewriteRule ^/(.*) http://www.mimvp.com/ [L]
Apache 实现301永久性重定向的方法(推荐 RedirectMatch)
Apache模块 mod_alias的 Redirect 和 RedirectMatch命令,2个命令使用方法相似。
区别是后者RedirectMatch基于正则表达式匹配对当前的URL发送一个外部重定向语法为:
Redirect [status] URL-path URL
RedirectMatch [status] regex URL
status参数可以使用以下HTTP状态码:
permanent 返回一个永久性重定向状态码(301),表示此资源的位置变动是永久性的。
temp 返回一个临时性重定向状态码(302),这是默认值。
seeother 返回一个“参见”状态码(303),表示此资源已经被替代。
gone 返回一个“已废弃”状态码(410),表示此资源已经被永久性地删除了。如果指定了这个状态码,则URL参数将被忽略。
举例:
Redirect 301 /old/old.htm http://www.mimvp.com/new.htm
Redirect permanent /one http://mimvp.com/two
RedirectMatch 301 (.*).gif$ http://www.mimvp.com/images/$1.jpg
使用mod_rewrite重写URL方式
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mimvp.com
RewriteRule ^(.*)$ http://www.mimvp.com/$1 [R=permanent,L]
上面配置含义,判断当前服务器变量HTTP_HOST是否等于mimvp.com
为真就进行重写,按照R=permanent进行永久重定向,L表示并立即停止重写操作,并不再应用其他重写规则
下面是最终实现的.htaccess文件,同时也并入wordpress重写规则:
# BEGIN Mimvp Blog <IfModule mod_rewrite.c> RewriteEngine On #Redirect Options +FollowSymLinks RewriteCond %{HTTP_HOST} ^mimvp.com$ RewriteCond %{HTTP_HOST} !^$ RewriteRule ^(.*)$ http://www.mimvp.com/$1 [R=301,L] #Rewrite(blog) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^blog/.* /blog/index.php [L] RewriteRule . - </IfModule> # END Mimvp Blog
3)Apache Rewrite 规则修正符
1) R 强制外部重定向
2) F 禁用URL,返回403HTTP状态码。
3) G 强制URL为GONE,返回410HTTP状态码。
4) P 强制使用代理转发。
5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N 重新从第一条规则开始运行重写过程。
7) C 与下一条规则关联,继续匹配,跟L相反
如果规则匹配则正常处理,以下修正符无效
8) T=MIME-type(force MIME type) 强制MIME类型
9) NS 只用于不是内部子请求
10) NC 不区分大小写
11) QSA 追加请求字符串
12) NE 不在输出转义特殊字符 \%3d$1 等价于 =$1
4)Apache Rewrite 简单示例
示例1:重写URL
原始URL:https://blog.mimvp.com/p2066.html
重写URL:https://blog.mimvp.com/?p=2066
重写规则:
^p([0-9]+)\.html /?p=$1 [L]
正则基础知识:
^ 匹配开始,匹配URL地址的开头部分,对于RewriteRule而言,域名(https://blog.mimvp.com)不是URL地址的一部分,如上:?p=2066
() 分隔一个被捕获的表达式,如上:([0-9]+)
[] 定义字符类,如上:[0-9] 表示从0-9之间的数字
+ 说明前面的字符可以被重复匹配1次或数次,如上:[0-9]+,表示任何数字组合,但不可为空
\ 字符转义,如上:转义小圆点.
[L] 表示last,匹配成功后就停止匹配其它
示例2:生成伪静态html
(1)生成伪静态html
在<VirtualHost>段最后加入
RewriteEngine on
RewriteRule /goods([0-9]+).html /goods.php?id=$1 [PT]
更标准的写法为:
RewriteRule ^(.*)/goods([0-9]+).html$ $1/goods.php?id=$2 [PT]
更简洁的写法:
/goods(\d+)\.html /goods\.php\?id=$1
第一个(0-9]+)对应参数$1,以此类推第二个对应$2
举例:
RewriteRule /forum-([0-9]+)-([0-9]+)\.html /forumdisplay.php?fid=$1&page=$2 [PT]
测试https://blog.mimvp.com/goods1.html 是否与/goods.php?id=1的内容相同
最后将所有链接换成设置后的伪静态html地址方式
[PT]:url全局转换,即转换过的goods31.html对应goods.php?id=31 (默认就是这个不加参数)
[R]: url重定向 即使用goods31.html访问时,跳转到goods.php?id=31
示例3:防盗链
RewriteCrond %{HTTP_HOST} !mimvp.com [R=301,L]
RewriteRule ^(.*)$ http://www.mimvp.com/warning.html [R=301,L]
把不是来自mimvp.com的请求重定向到http://www.mimvp.com
更好的做法:
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mimvp\.com/.*$ [NC]
RewriteRule \.(mp3|rar|jpe|gif)$ http://www.mimvp.com/warning.jpg [R=301,L]
改进示例:
## 防盗链
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !^(.*)mimvp.com [NC]
RewriteCond %{HTTP_REFERER} !^(.*)baidu.com [NC]
RewriteCond %{HTTP_REFERER} !^(.*)sogou.com [NC]
RewriteCond %{HTTP_REFERER} !^(.*)so.com [NC]
RewriteCond %{HTTP_REFERER} !^(.*)bing.com [NC]
RewriteCond %{HTTP_REFERER} !^(.*)google.com [NC]
RewriteRule .*\.(png|gif|jpg|jpeg|bmp|swf|pdf|txt|zip|rar)$ /anti-link.jpg [L,NC]
根据 referer 判断,首先需要判断 referer 不能为空,否则直接访问都会被屏蔽(浏览器输入链接访问,referer为空,会被被屏蔽,需排除)
然后,判断是否属于米扑科技的域名(mimvp.com),若不是则屏蔽
接着,判断是否是主流的爬虫引擎,防止屏蔽掉一些做数据分析的野爬虫
最后,只对图片格式 (png|gif|jpg|jpeg|bmp|swf|pdf|txt|zip|rar) 做判断,防止的是图片盗链,节省带宽和流量
需注意,防盗链的图片大小最好压缩的更可能小,若防盗链图片很大,则没有防盗链的必要了(实际上还有有效果的,访问同一张盗链替代图和多张正文图)
需特别注意,RewriteRule .*\.(png|gif|jpg|jpeg|bmp|swf|pdf|txt|zip|rar)$ /anti-link.jpg [L,NC] 网上很多文章把这里的 [L,NC] 写成了 [R=permanent,L,NC] ,实际是错误的,后果很严重,为什么呢?因为 R=permanent 是 301 永久重定向,盗链图是用了替代图,可apache服务器设置了过期时间有缓存,正常访问原始文章url链接或原图,也会被 301 永久重定向到盗链替换图,严重影响了正常访问,因此这里特别需要注意,只能采用 [L,NC]
米扑博客的防盗链实战示例:
CSDN 转载链接:https://blog.csdn.net/ithomer/article/details/74034673 (会出现 404 盗链错误提示,显示盗链替换图)
米扑博客原链接:https://blog.mimvp.com/article/18481.html (会正常实现图片)
测试时,有些需要强制清空浏览器缓存,防止浏览器 304 状态码的本地缓存的影响
示例4:防百度爬虫
RewriteCond %{HTTP_USER_AGENT} ^Baiduspider [OR]
RewriteRule ^(.*)$ http://www.google.com [R=301,L]
把来自百度的爬虫转到google
改进示例:
禁止不常见爬虫蜘蛛,他们之间不区分大小且关系是或[NC,OR],强制跳转到米扑科技首页(https://mimvp.com)
## 禁用不常见的爬虫蜘蛛
RewriteCond %{HTTP_USER_AGENT} ^(.*)SemrushBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)AhrefsBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)DotBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)MJ12bot [NC]
RewriteRule ^(.*)$ https://mimvp.com/$1 [R=permanent,L]
5)Apache Rewrite 应用实例
a) httpd.conf
# blog.mimvp.com <VirtualHost *:80> RewriteEngine on #RewriteRule ^(.*)mimvp-proxy-lastest-free-proxy-ip https://mimvp.com [L,R] RewriteRule ^(.*)mimvp-proxy-lastest-free-proxy-ip https://mimvp.com [R=permanent,L] RewriteRule ^(.*)phpmyadmin https://mimvp.com [R=permanent,L] ServerAdmin abc123@mimvp.com DocumentRoot /var/www/html/mimvp-blog ServerName blog.mimvp.com RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R=permanent,L] DirectoryIndex index.php ErrorLog /var/log/blog.mimvp.com-error_log CustomLog /var/log/blog.mimvp.com-access_log customlog </VirtualHost> <VirtualHost *:443> RewriteEngine On ## 禁用已失效或不存在的网页路径 RewriteRule ^/html5 https://mimvp.com/$1 [R=permanent,L] RewriteRule ^/phpmyadmin(.*)$ https://mimvp.com [R=permanent,L] RewriteRule ^(.*)mimvp-proxy-lastest-free-proxy-ip https://mimvp.com [R=permanent,L] # RewriteRule ^/?p=([0-9]*) /article/$1.html [R=permanent,L] ## 禁用不常见的爬虫蜘蛛 RewriteCond %{HTTP_USER_AGENT} ^(.*)SemrushBot [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^(.*)AhrefsBot [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^(.*)DotBot [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^(.*)MJ12bot [NC] RewriteRule ^(.*)$ https://mimvp.com/$1 [R=permanent,L] ## 防盗链 RewriteCond %{HTTP_REFERER} !^$ [NC] RewriteCond %{HTTP_REFERER} !^(.*)mimvp [NC] RewriteCond %{HTTP_REFERER} !^(.*)mimvp.com [NC] RewriteCond %{HTTP_REFERER} !^(.*)mimgu.com [NC] RewriteCond %{HTTP_REFERER} !^(.*)mimji.com [NC] RewriteCond %{HTTP_REFERER} !^(.*)baidu.com [NC] RewriteCond %{HTTP_REFERER} !^(.*)sogou.com [NC] RewriteCond %{HTTP_REFERER} !^(.*)so.com [NC] RewriteCond %{HTTP_REFERER} !^(.*)bing.com [NC] RewriteCond %{HTTP_REFERER} !^(.*)google.com [NC] RewriteRule .*\.(png|gif|jpg|jpeg|bmp|swf|pdf|txt|zip|rar)$ /anti-link.jpg [L,NC] SSLEngine on SSLCertificateChainFile /etc/httpd/conf/1_blog_root_bundle.crt SSLCertificateFile /etc/httpd/conf/2_blog.mimvp.com.crt SSLCertificateKeyFile /etc/httpd/conf/3_blog.mimvp.com.key ServerAdmin abc123@mimvp.com DocumentRoot /var/www/html/mimvp-blog ServerName blog.mimvp.com DirectoryIndex index.php index.html index.htm ErrorLog /var/log/blog.mimvp.com-error_log CustomLog /var/log/blog.mimvp.com-access_log customlog </VirtualHost>
b).htaccess
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
改进型
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On # Redirect Options +FollowSymLinks RewriteCond %{HTTP_HOST} !^(.*)mimvp\.com(.*)$ [NC] RewriteRule ^(.*)$ https://blog.mimvp.com/$1 [R=301,L] # Rewrite(blog) RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> <IfModule mod_expires.c> ExpiresActive On ExpiresDefault A600 ExpiresByType image/x-icon A2592000 ExpiresByType image/gif A2592000 ExpiresByType image/jpeg A2592000 ExpiresByType image/png A2592000 ExpiresByType text/css A604800 ExpiresByType text/plain A86400 ExpiresByType application/x-shockwave-flash A2592000 ExpiresByType application/x-javascript A604800 ExpiresByType video/x-flv A2592000 ExpiresByType application/pdf A2592000 ExpiresByType text/html A600 </IfModule> # END WordPress
参数解释:
知识点一:
# Redirect
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} !^(.*)mimvp\.com(.*)$ [NC]
RewriteRule ^(.*)$ https://blog.mimvp.com/$1 [R=301,L]
访问url链接里不包含 mimvp.com 字符串(NC表示不区分大小写),视为被恶意域名解析,强制跳转到米扑博客首页,$1 参数不变
知识点二:
# Rewrite(blog)
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
若访问不是首页 RewriteRule ^index\.php$ - [L] ,则进行判断:
RewriteCond %{REQUEST_FILENAME} !-f 表示请求url路径,若不是文件 !-f
RewriteCond %{REQUEST_FILENAME} !-d 表示请求url路径,且不是目录 !-d ( RewriteCond 默认是并,若是或则用[OR] )
RewriteRule . /index.php [L] 表示跳转到首页,配合 wordpress 设置里的“固定链接”配置,可以实现 php 静态化为 html
例如:米扑博客的静态链接 https://blog.mimvp.com/article/12259.html ,其真实的动态链接为 https://blog.mimvp.com/?p=12259
4. 封禁某些IP访问/只允许某些IP访问网站
如果要控制禁止某些非法IP访问,在Directory选项控制:
<Directory "/var/www"> # Options Indexes FollowSymLinks Options FollowSymLinks # 禁用Indexes,防止根目录泄露 AllowOverride All # Controls who can get stuff from this server. 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"> # Options Indexes FollowSymLinks Options FollowSymLinks # 禁用Indexes,防止根目录泄露 AllowOverride All # Controls who can get stuff from this server. Order deny,allow Deny from all Allow from example.com # 允许某个域名 Allow from 10.0.0.1 # 允许一个iP Allow from 10.0.0.1 10.0.0.2 # 允许多个iP Allow from 10.1.0.0/255.255.0.0 # 允许一个IP段,掩码对 Allow from 10.0.1 192.168 # 允许一个IP段,后面不填写 Allow from 192.168.0.0/24 # 允许一个IP段,网络号 </Directory>
禁止或允许某些IP访问,也可以从外部文件引入
1) 添加引入文件到 httpd.conf
Include block_ip_demo.con[f]
Include block_ip_blog.con[f]
2)把禁止或允许IP添加到配置文件
本文米扑博客以禁止IP访问为例
cat /etc/httpd/conf/block_ip_demo.conf
deny from 117.131.216.197
deny from 119.44.13.93
deny from 113.222.238.160
方法跟httpd.conf直接禁止IP类似,只是在禁止IP量很大(如1000个、10000个)时,引入一个外部的conf配置文件管理会更方便、简洁
配置好 httpd.conf 文件后,需要重启Apache,才能生效
/etc/init.d/httpd restart
综上小结
要禁止访问某个 url,例如 /html5 开头的路径,实现方法有三种
方法1:URL相对路径禁止
<Location ~ "^/html5">
Require all denied
# Order allow,deny
# Deny from all
</Location>
说明:
此方法是禁止访问指定的 URL 相对路径,返回 403 禁止访问代码
Require all denied 是Apache 2.4.x 以上的用法,等同于Apache 2.2.x 用法 Order allow,deny Deny from all
方法2:RedirectMatch 重定向正则匹配 (推荐)
<Directory "/usr/local/httpd/htdocs">
RedirectMatch 301 ^/html5 https://www.google.com
...
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
此方法是将 /html5 开头的URL匹配,全部跳转到 google,可以全局配置
方法3:RewriteRule 规则匹配重写
<VirtualHost *:443>
RewriteEngine On
RewriteRule ^/html5 https://www.google.com/$1 [R=permanent,L]
....
</VirtualHost>
此方法在 VirtualHost 中配置才生效,在 httpd.conf 全部配置发现并未生效,原因不详
参考推荐:
Apache Rewrite 规则 RewriteCond、RewriteRule 参数配置详解
Apache 实现https+Apache http访问转到https
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2018-08-26 20:00:15
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
转载注明: Apache 设置禁止访问网站目录 (米扑博客)