apache配置rewrite及.htaccess文件

今天看到一个哥们的帖子发了个rewrite的帖子,以前也写过一个,配置挺简单的,但当时没注意这个问题,当时没有用到.htaccess文件,在机子上测试了一下,发现确实没法用,于是开始找问题的所在。

自己从头搭建了一下:

1.  首先确定您使用的 Apache 版本,及是否加载了 mod_Rewrite 模块。

     简单方法 echo phpinfo();  看apache的mod里有没有rewrite

     如果有跳过此步

  Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码:

  LoadModule Rewrite_module libexec/mod_Rewrite.so

  AddModule mod_Rewrite.c

  Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段代码:

  LoadModule Rewrite_module modules/mod_Rewrite.so

  注:如果前面有#,将其去掉。并且保证你的apache文件里有mod_Rewrite.so文件(1.X版的要有mod_Rewrite.c)。
2.  配置Apache配置文件httpd.conf实现rewrite

找到

 

< IfModule mod_Rewrite . c >

</ IfModule >


    没有的自己添加,然后之间写入你的rewrite规则,例如:

< IfModule mod_Rewrite . c >
RewriteEngine On
RewriteRule 
^ test . htm$  test . php
</ IfModule >


3.此时请务必注意,如果网站使用通过虚拟主机来定义,请务必加到虚拟主机配置,即 <VirtualHost> 中去,如果加在虚拟主机配置外部将可能无法使用,重启apache,rewrite配置就完了。

4.让apache支持.htaccess

   把<IfModule mod_Rewrite.c>里的代码删除掉

   找到

< Directory  />

Options FollowSymLinks

AllowOverride None

</ Directory >

把里边的AllowOverride None  改为  Allow Override All   这样.htaccess文件才能启用。

 

5.创建一个.htaccess文件,win下可以用notepad++之类的编辑器建(记事本不行),要是嫌麻烦此文档附件中有,放在项目目录下,然后在里边写上自己的规则。

RewriteEngine on
Rewriterule 
^ test . htm$ test . php 

 

6.重启apache就行了

 

7.一般的apache以上配置就行了,但我的还不行,所以研究了一下apache的配置文件发现了这样一个参数:

 

AccessFileName access . ht

  意思是;AccessFileName定义每个目录下的访问控制文件的文件名,缺省为.htaccess (大多数人直接就是.htaccess,所以好多网上教程都没写这步,而我的是access.ht),可以通过更改这个文件,来改变不同目录的访问控制限制。

 

将之改为

AccessFileName  . htaccess


8.重启apache就行了。

 

 

题外:.htaccess位置问题:htaccess文件(或者"分布式配置文件")提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。(每一个文件夹下都可以有个.htaccess文件)

 

.htaccess下载

 

转载于:https://www.cnblogs.com/banruo/archive/2010/11/02/1867536.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.htaccess文件是用于配置Apache服务器的重要文件之一,它可以用来设置网站的URL重写规则、密码保护目录、自定义错误页面等功能。对于使用PHPStudy的用户来说,可以通过.htaccess文件配置网站的访问权限、URL美化等。 以下是一些.htaccess文件的常见用法示例: 1. URL重写规则:可以使用RewriteEngine指令开启URL重写功能,并使用RewriteRule指令来定义重写规则,将URL转发到指定的脚本或页面。 ``` RewriteEngine On RewriteRule ^/example/(.*)$ /example.php?param=$1 [NC,L] ``` 上面的规则将把URL中的/example/后面的内容作为参数传递给example.php页面。 2. 密码保护目录:可以使用AuthType和AuthUserFile指令来设置目录的访问权限,只有提供正确的用户名和密码才能访问该目录。 ``` AuthType Basic AuthName "Restricted Area" AuthUserFile /path/to/.htpasswd Require valid-user ``` 上面的示例将设置目录的访问权限,并使用.htpasswd文件中的用户名和密码进行验证。 3. 自定义错误页面:可以使用ErrorDocument指令来定义自定义的错误页面,当服务器返回特定的HTTP错误码时,将显示指定的错误页面。 ``` ErrorDocument 404 /errors/404.html ``` 上面的示例将在发生404错误时,显示/errors/404.html页面。 请注意,使用.htaccess文件需要确保服务器已启用相应的模块(如mod_rewrite),并且允许.htaccess文件的使用。同时,对于PHPStudy的用户来说,还需要确认Apache服务器的配置中允许覆盖指令(AllowOverride)设置为All。 希望以上信息对你有帮助!如果你还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值