windows下如何建立.htaccess文件
在windows平台下,不能直接建立“.htaccess”文件,因为这个文件实际上没有文件名,仅仅只有扩展名,windows系统不支持直接给予无文件名的文件命名.
但可以用以下方法间接实现.先建立一个任意的.txt(如abc.txt)文本文件,然后有三种方式给这个文件重命名:
(1)用记事本打开,点击文件–另存为,在文件名窗口输入“.htaccess”,然后点击保存就行了。
(2)进入cmd命令窗口,通过cd切换当刚建立abc.txt所在的文件夹,然后输入命令:rename abc.txt .htaccess ,然后点击键盘Enter键即可。
(3)通过ftp连接htaccess.txt所在文件夹,通过ftp软件重命名。
另外还可以参考下面这种思路
其实,对于.htaccess文件修改的时候会有点麻烦,其实也可以使用其他任意的文件名只需要在配置文件httpd.conf文件中指定。下面一段摘自apahe文档中的一段话就详细的说明了这点。
.htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。
说明:如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。 例如,需要使用.config,则可以在服务器配置文件中按以下方法配置:
AccessFileName .config
允许放在这些文件中的指令取决于AllowOverride指令, 此指令按类别决定了.htaccess文件中哪些指令才是有效的。 如果一个指令允许放在.htaccess文件中,则,在本手册的说明中,此指令会有一个覆盖段, 其中说明了为使此指令生效而必须在AllowOverride指令中设置的值。
htacess实用功能简介于使用注意事项
注意:htacess设置的目录访问权限是针对Web路径的,要注意这些区别效果 如:用 htacess设置某个目录不可在线访问(显示403禁止访问),但其实不影响该目录下的文件被其它程序引用(eg:PHP 中用include包含该目录下的文件依然有效),并且不影响下载(可能是端口不同,htacess主要针对80端口),如css文件就可以下载能够访问 常常可以利用该特性将重要数据库设置文件或其它放在这种目录下面,可以防止一些重要数据意外泄漏. 常用实用功能 1 设置密码保护访问 2 很方便的用于防盗链 3用于URL静态化 |
在linux .windows等环境下利用htaccess设置目录访问密码权限
.htaccess可用于网站目录可靠的密码保护。尽管JavaScrip等也能做到,但只有.htaccess具有完美的安全性(即访问者必须知晓密码才可以访问目录,并且绝无“后门”可走)。
必须同时建立两个文件
.htaccess 和.htpasswd
参考案例:
.htaccess内容里写:
deny from all
AuthUserFile /tianwangfu/.htpasswd
#注意上面必须为.htpasswd文件所在服务器的绝对目录:在windows服务器平台下为E:/**的格式,但如果使用linux系统或nginx服务器,路径形式则为 "/**/**"的形式
#查看绝对路径的办法,利用PHP下的PHPinfo()函数,参考结果中的SCRIPT_FILENAME 值即可
AuthGroupFile /dev/null
AuthName "www.tianwangfu.com"
AuthType Basic
require valid-user
order deny,allow
.htpasswd文件内容:
abc:abcd
#上面是windows下设置的,意思是访问这个目录的用户名是abc,密码是abcd
在linux下应为如下形式:
abc:abcd的加密后的密文
加密后的密文可以参考这个网址http://www.78300.com/tool/htaccess/#a_basic
可能在windows下也可以设置成密码为密文的形式,本人暂未尝试过
Windows环境下配合apache使用.htaccess保护web目录
常看到LINUX/UNIX环境下apache使用.htaccess文件进行目录访问控制的例子,但是很少看到Windows下的例子.这里就简单做个教程说明,在windows下搭建的服务器也是可以使用.htaccess文件的所有功能的
在windows下的简单设置方法:
修改修改httpd.conf配置文件,定义需要访问控制的目录 需要在配置文件中增加以下内容。
#必须是允许设置htaccess的绝对路径,并且路径必须精确,就是.htaccess文件要放置的目录路径
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
如果还要在其它目录下单独设,继续仿照上面的添加即可
注意:防止逻辑矛盾,最好自己先搜索关键字AllowOverride,并都将参数改为ALL,防止前后不一致,服务器无法执行
利用.htaccess重定向
把域名
http://tianwangfu.com/
http://tianwangfu.com/index.php
这两个地址访问的页面永久性重定向
http://www.tianwangfu.com/
通过创建.htaccess来实现,内容如下:
rewriteEngine on
rewriteCond %{http_host} ^tianwangfu.com
rewriteRule ^(.*)$ http://www.tianwangfu.com/$1 [R=301,L]
# Redirect client index.php requests to "/"
rewriteCond %{THE_REQUEST} ^([wW]*?)/index.php
rewriteRule ^index.php$ http://www.tianwangfu.com/ [R=301,L]
这种方法都能很简单的实现301重定向。
建议:在任何链接中避免有直接指向index.php的形式,包括外链及内链,尤其是内链。这只是一个折中的方法。