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文件)

转载自:http://www.cnblogs.com/banruo/archive/2010/11/02/1867536.html

时间: 2024-10-12 20:39:37

apache配置rewrite及.htaccess文件(转载)的相关文章

Apache:如何利用.htaccess文件对PHP网站或文件进行伪静态处理

来源:http://www.ido321.com/1123.html 今天get了一招:利用.htaccess文件对PHP网站或文件进行伪静态处理. 一.检查服务器是否支持伪静态处理: 必须要空间支持 Rewrite 以及对站点目录中有 .htaccess 的文件解析,才有效.找到apache安装目录下的httpd.cof文件,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#(大概在154行,我的默认是开启) 二.在httpd.cof中

使用org.apache.jasper.JspC编译jsp文件--转载

JspC可以通过jspc.setArgs(args);设置所需参数,和使用指令进行编译相同, 使用指令编译范例: java -cp jasper.jar;servlet-api.jar;Fcatalina.jar;F:\server\tomcat.6\bin\tomcat-juli.jar;ant.jar;jsp-api.jar;jasper-el.jar;el-api.jar;jstl.jar;standard.jar;jasper-el.jar;jasper-jdt.jar org.apac

apache 配置rewrite模块,URL中隐藏index.php

打开httpd.conf 去掉下面的井号 #LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉 在网站根目录添加.htaccess RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [L] 重启服务器

Apache 配置不记录指定文件类型的日志

[[email protected] ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/www" ServerName www.test.com SetEnvIf Request_URI ".*\.gif$" image-request SetEnvIf Request_URI ".*\.jpg$"

Apache中.htaccess文件的作用和配置

00x01 What's .htaccess      htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置.通过htaccess文件,可以帮我们实现:网页301重定向.自定义404错误页面.改变文件扩展名.允许/阻止特定的用户或者目录的访问.禁止目录列表.配置默认文档等功能. 一般来说,htaccess文件需要放在网站的根目录下才能控制整个站点,并且在Linux系统中,需要把其权限设置为644以提高安全性.国内很多主机提供商都通过一定技术手段禁用了该文件,但是国

Apache HTTP Server .htaccess文件详解

本篇是对Apache httpd 2.2版.htaccess官方帮助文档的翻译,力求严谨准确 Apache HTTP Server 教程:.htaccess文件 .htaccess文件提供了的一种基于每目录进行配置修改的方法. .htaccess文件 相关模块                        相关指令 core                               AccessFileName mod authn file              AllowOverride

Apache环境修改.htaccess文件实现子目录强制HTTPS访问

如果要在Apache环境下实现子目录强制HTTPS地址访问,该怎么实现呢?在此文章中将与大家一起分享如何在Apache环境下修改.htaccess文件来实现子目录强制HTTPS地址访问. 1.根目录域名.甚至比较简单,在.htaccess文件中增加下面代码即可,请记得改成自己域名. RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.网站域名.com/$1 [R,L] 2.子目录实现强制跳转h

Apache环境利用.htaccess文件设置域名301跳转(不带www跳转到带www)

相信很多站长朋友都遇见过这样的问题,即带www的域名与不带www的域名同时都被收录,但域名权重情况差距很大.这问题主要是由于搜索引擎把这两个域名当做两个不同网站看待,导致一个域名被判定是镜像网站造成的.毫无疑问,不管是带www还是不带www,唯一域名能够给你的网站带来更多的好处.这样无论是用户还是搜索引擎,都会记住你网站的唯一域名,也不会造成搜索引擎的误判而导致惩罚.下面本文就来介绍一下Apache环境下利用.htaccess文件设置301跳转,强制用户或搜索引擎重定向到唯一域名. #301重定

.htaccess文件(或者&quot;分布式配置文件&quot;)

.htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户,所能使用的命令受到限制.管理员可以通过Apache的AllowOverride指令来设置. 概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置.通过htaccess文件,可以帮我们实现:网页301重定向.自定义404错误页面.改变文件扩展名.允许/阻止特定的用户或