Apache 在 htaccess 禁止访问 和 conf 中的 禁止访问 区别
相信熟悉Web Server的人一定熟悉Apahce。相信熟悉Apahce的人一定知道URL Rewrite。Apache的mod_rewrite模块,可以帮助人们构造出各种各样美化后的URL。在Apache中使用URL Rewrite,可以有多种方式:一种是直接在httpd.conf中添加相应rewriterule(重写规则),另一种是在网站根目录下的.htaccess中添加rewriterule(重写规则)。但是,需要注意的是,在这两个文件中添加到URL重写规则略有不同。而这些不同,对于不熟悉的人来说,很可能会困扰许久。

在Httpd.conf中:
(1)Request URI的开头必须以斜线开始;
(2)在寻找Cache文件的时候,必须在开头加上斜线;
(3)在使用-f或者!-f的时候,必须在开头加上斜线。
在.htaccess中,情况完全相反:
(1)Request URI的开头不能有斜线;
(2)在寻找Cache文件的时候,不能在开头加上斜线;
(3)在使用-f或者!-f的时候,不能在开头加上斜线。
简单而言,就是在httpd.conf中,重写前后的URL在使用绝对路径时需要添加斜线“/”,表示从网站根目录开始;而在.htaccess中,则不需要。以下两个简单的例子:
httpd.conf
RewriteRule ^/$ /cache/index.html [QSA]
RewriteRule ^/([^.]+)$ /cache/$1.html [QSA]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
.htaccess
RewriteRule ^$ cache/index.html [QSA]
RewriteRule ^([^.]+)$ cache/$1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
或许还有更多的不同,大家也可以自己关注研究一下。
例如 一个 写在 .htaccess 中的..
<IfModule mod_rewrite.c> #禁止 所有访问....
<Files ~ "^.(htaccess|htpasswd|info.php|(\S)+.md|(\S)+.sql)$">
deny from all
</Files> # 禁止访问 vendor....
<Location /vendor>
Deny from all
</Location> Options +FollowSymlinks
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$ [QSA,PT,L] </IfModule>
而写在 httpd.conf 中的.
#ThinkPhp 安全 配置... <IfModule mod_rewrite.c> #禁止 所有访问....
<Files ~ "^.(htaccess|htpasswd|info.php|(\S)+.md|(\S)+.sql)$">
deny from all
</Files> # 禁止访问 vendor.... composer 所在目录...
<Location /vendor>
Deny from all
</Location> <Location /ThinkPhp>
Deny from all
</Location> Options +FollowSymlinks
RewriteEngine On RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ index.php?/$ [QSA,PT,L] </IfModule>
在 写的 时候....出现了 bug .......暂时这样解决的..
httpd.conf
<IfModule mod_rewrite.c>
#ThinkPhp 安全 配置...
#禁止 所有访问....
<Files ~ "^.(htaccess|htpasswd|info.php|(\S)+.md|(\S)+.sql)$">
deny from all
</Files> # 禁止访问 vendor.... composer 所在目录...
<Location /vendor>
Deny from all
</Location> <Location /Thinkphp>
Deny from all
</Location> </IfModule>
.htaccess
<IfModule mod_rewrite.c> Options +FollowSymlinks
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$ [QSA,PT,L] </IfModule>
Apache 在 htaccess 禁止访问 和 conf 中的 禁止访问 区别的更多相关文章
- 关于nginx中不用.htaccess 用在ningx.conf中配置的问题
官网一直出现http://4**.**..7/php/index.php/admin/base/getConfigs报错404错误问题, 问题一:URL重写问题(nginx配置问题) 问题二:vue中 ...
- apache通过.htaccess(rewrite)判断手机电脑跳转-手机用户重定向到手机版
自动判断.重定向的办法也有几种: 使用网站构建的程序(例如PHP)来判断.重定向:使用服务器上的Web服务(例如Apache)来判断.重定向. 在Apache中设置重定向有两个办法: 在网站的http ...
- 使用apache和htaccess对目录访问设置密码保护配置教程
对目录设置密码保护配置说明我们有时候访问某些网站的时候,要求输入用户名和密码才能访问.这是为了保护隐私,只让经过许可的人访问.在本教程中主要介绍两种方法,一种是通过apache httpd.conf配 ...
- tomcat中如何禁止和允许主机或地址访问
1.tomcat中如何禁止和允许列目录下的文件 在{tomcat_home}/conf/web.xml中,把listings参数设置成false即可,如下: <servlet>...< ...
- apache的.htaccess文件作用和相关配置
首先.htaccess什么? .htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令. 当我们使用apache部署一个网站代码准备部署到网上的时候,我们手中的apache的h ...
- apache开启.htaccess及.htaccess的使用方法(转)
apache开启.htaccess及.htaccess的使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2010-12-02 今天本地调试PHP程序,用到了.htaccess,而默认配置里面 ...
- apache开启.htaccess
1 . 如何让的本地APACHE开启.htaccess 如何让的本地APACHE开启.htaccess呢?其实只要简朴修改一下apache的httpd.conf设置就让APACHE.htaccess了 ...
- apache开启.htaccess及.htaccess的使用方法
今天本地调试PHP程序,用到了.htaccess,而默认配置里面开启.htaccess,在网上找到了开启.htaccess的可行方法,供朋友们借鉴.(开启的我他的方法不行,查找了一下AllowOver ...
- Apache支持.htaccess配置方法
打开httpd.conf文件用文本编辑器打开后,查找 代码如下 复制代码 Options FollowSymLinks AllowOverride None 改为: Options FollowSy ...
随机推荐
- springmvc 在页面跳转之后 引入文件的路径前面加上了 controller 的映射名
转自:https://zhidao.baidu.com/question/2140453086362943788.html 应该是没有前面的/user的 前端用的是jsp吗,如果是在路径前加${pag ...
- XSS的各种用途
0x01 最常见之窃取用户cookie 当cookie没有设置HttpOnly属性时,可以通过javascript代码创建img,script,iframe等标签,并把src属性设置为自己部署的xss ...
- C#封装CRUD到SqlHelper类解读
1.简单说明一下,一般情况下,数据库连接字符串是在App.config文件中进行配置,然后再在代码中进行引用.因此,我们在这里先看一下App.config文件. 首先看需要添加的内容: 参数说明: n ...
- springmvc 处理器方法返回的是string 重定向到处理器方法
- ubuntu16部署gitlab
一.gitlab的安装 1. 安装依赖包 $ sudo apt-get update #如无ssh还需安装openssh-server $ sudo apt-get install postfix c ...
- 文本框控件JTextField和JTextArea的使用
-----------------siwuxie095 工程名:TestUI 包名:com.siwuxie095.ui 类名:TestTextF ...
- Android 之 信息通知栏消息Notification
Notification是安卓手机顶部的消息提示 这里我们分别设置两个按钮,来实现顶部消息的发送和取消 功能实现 首先要在主Activity中设置一个通知控制类 NotificationManager ...
- (转)Linux操作系统下VMware的多网卡桥接转换
VMware,鼎鼎大名的虚拟机软件,没有人不知道吧?当然,在Linux下使用虚拟机软件,并不一定需要使用VMWare,Xen也是非常不错的选择,有很多评测就认为XEN的表现优于VMware.可惜的是X ...
- c++调用shell命令
system()这个函数就不说了,不能读取返回值. #include<cstdio> int main() { FILE *fp; ]={}; fp=popen("ssh roo ...
- tcpdump/HTTP协议实践
tcpdump/HTTP协议实践 客户端: CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAI ...