.htaccess
Posted on | 十一月 26, 2009 | 1 Comment
1. .htaccess文件简介
.htaccess文件又称为”分布式配置文件”,它为我们提供了针对目录改变配置的方法。.htaccess可以做大量的事情,包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件。
以下是Apache指南中关于.htaccess文件的介绍:
.htaccess文件(或者”分布式配置文件”)提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。
说明:
如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。 例如,需要使用.config,则可以在服务器配置文件中按以下方法配置:
AccessFileName .config
允许放在这些文件中的指令取决于AllowOverride指令, 此指令按类别决定了.htaccess文件中哪些指令才是有效的。 如果一个指令允许放在.htaccess文件中,则,在Apache手册的说明中,此指令会有一个覆盖段, 其中说明了为使此指令生效而必须在AllowOverride指令中设置的值。
…….
更多内容:Apache指南—.htaccess文件
2. 使用过程中遇到的问题
1).htaccess文件的创建
在使用过程中第一个遇到的问题就是.htaccess文件创建的问题。因为我使用的是Windows操作系统,Windows不允许以正常的方式创建.htaccess。原因很简单,.htaccess只有扩展名。不能以正常的方式创建那么,意味着非正常的方式可以创建:
a)从网上直接下载一个(从Google或百度里搜索一下),这是最简单有效的方法,唯一要注意的问题就是小心病毒。在病毒横行的年代,我们要时刻保持警惕。
b)本人在网上搜了一段VB代码:
Dim fso, f1
Set fso = CreateObject(”Scripting.FileSystemObject”)
Set f1 = fso.CreateTextFile(”d:\.htaccess”, True)
用记事本创建一个文本文件,将以上三行代码复制到此文本文件。把文本文件的扩展名由.txt改为.vbs,然后双击即可。默认将.htaccess文件保存在D盘根目录,你可以根据自己的需要修改上面的代码。注:必须使用已存在的路径,若路径不存在,则会抛出异常!
2).htaccess文件的使用
使用zendframework时,需要在根目录下建一个.htaccess文件,并创建如下内容:
RewriteEngine on
RewriteRule .* index.php
php_flag magic_quotes_gpc off
php_flag register_globals off
然后在php.ini中AllowOverride 设置为 All
以上设置的目的是使所有请求都重定向到index.php,由index.php来处理所有请求(为什么这样做,我会在其他文章中介绍)。但设置完成后,无论我访问任何页面,都会报错:
————————————————————–
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator,warptencq@gmail.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
————————————————————-
查看Apache的日志,发现如下错误
————————————————————–
[Sat May 15 14:45:43 2008] [alert] [client 127.0.0.1] E:/Projects/BS/PHP/zendtest/.htaccess: Invalid command ‘RewriteEngine’, perhaps misspelled or defined by a module not included in the server configuration
————————————————————–
原来是模块rewrite_module 没有加载(apache默认是不加载此模块),在httpd.config中,将#LoadModule rewrite_module modules/mod_rewrite.so前面的#去掉。然后保存、重启Apache,问题解决。
相关文章:
- 修改.htaccess实现301重定向[转]
- .htaccess技巧
- WordPress 永久链接以及在各种平台上的实现方法
- samba4_smbclient_linux_winnt_share_file
- google hack
评论|Comments
One Response to “.htaccess”
留言|Leave a Reply
![如果您自认为是一位忠实的Silverlight-Fans,那么请将此标志放到您的博客中成为一名真正的[银光使者]](http://images.cnblogs.com/cnblogs_com/alamiye010/Silverlighter1.jpg)
十一月 26th, 2009 @ 14:58
用 .htaccess 就得
加兩句野入 .htaccess 就可以禁用 register_globals 同 magic_quotes_gpc[Copy to clipboard] [ - ]CODE:
php_flag register_globals off
php_flag magic_quotes_gpc off我自己試過用[Copy to clipboard] [ - ]CODE:
< ? var_dump(ini_get('register_globals')); var_dump(get_magic_quotes_gpc()); ?>係會得到
QUOTE:
FALSE
FALSE