开启rewrite功能及检测示例

为你的Apache服务器开启rewrite功能

rewrite时下很火爆,能提供很多实用功能.Apache安装后默认是不支持rewrite的,可以按照下面的方法启用:
首先确保网站目录支持.htaccess,然后加载Rewrite模块即可.
在httpd.conf中找到Directory设置,如

  Options Indexes FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all

把你想开启.htaccess的目录AllowOverride设置为All.
找到LoadModule rewrite_module modules/mod_rewrite.so
去掉签名的”;”号,开启Rewrite功能.
也可加上下面这句:AddModule mod_rewrite.c
OK了!
测试你的服务器是否支持rewrite功能,将下面的代码保存为.htaccess文件,上传到网站任一目录下.
访问该目录下的任意内容,如果浏览器跳转到了我的博客首页,恭喜你!你的服务器成功支持rewrite.
[coolcode lang=”php”]
Options -Indexes

RewriteEngine on
RewriteBase /
RewriteRule .*$ http://www.zhouliang.name

[/coolcode]

最近在研究Symfony框架时,发现它示例中的rewrite规则写的很有代表性,就帖出来,供大家参考.
Symfony使用的rewrite及简单说明:

[coolcode lang=”php”]
#+FollowSymLinks 开启符号链接,使浏览器有可能访问文档根目录(DocumentRoot)之外的文档
#+ExecCGI 允许这个目录下可以执行CGI程序
Options +FollowSymLinks +ExecCGI

#条件判断,如果服务器支持rewrite功能就执行里面的代码,否则跳过.

#开启重写引擎
RewriteEngine On

#跳过所有非html后缀的文件
RewriteCond %{REQUEST_URI} \..+$
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule .* – [L]

#为所有无后缀的访问添加html后缀,并检测这个html文件是否存在
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f

#文件不存在,重写到index.php
RewriteRule ^(.*)$ index.php [QSA,L]

# 如果symfony程序出现内部500错误,则显示下面的提示信息
ErrorDocument 500 “

Application error

symfony applicationfailed to start properly”
[/coolcode]

1 条评论

  1. 以下是我发另一大哥的.现在发您也来帮忙看下好吗?

    在落伍下的代码,是你的,很开心.不过装上后不显示文章..不知道为什么?
    首页进入一子叶面
    http://a.zhissd.cn/book/16182_16/index.html
    此叶是有内容的,然后点第一节http://a.zhissd.cn/book/16182_16/1.html
    就没有文章出现了.只有顶部AD和下面AD及一个”网站首页”的链接….中间要的文章内容没有显示.

    看你的说明讲========下面是我的nginx下的 rewrite规则 如果你使用IIS APACHE等 请自行修改下

    我在这里希望你都同时发布下好吗?我真的很喜欢你的程式,就是不知道写..我的是APACHE的.但希望你把IIS APACHE的都发下….

    下面的是您在nginx下的 rewrite规则

    rewrite ^/all/index_([0-9]+).html$ /index.php?mod=index&id=$1 last;
    rewrite ^/book/([0-9]+)/index.html$ /index.php?mod=book&bookid=$1 last;
    rewrite ^/book/([0-9]+)_([0-9]+)/index.html$ /index.php?mod=bookx&bookid=$1&id=$2 last;
    rewrite ^/book/([0-9]+)/([0-9]+).html$ /index.php?mod=bookview&bookid=$1&id=$2 last;
    rewrite ^/book/([0-9]+)/vip_([0-9]+).html$ /index.php?mod=vipview&bookid=$1&id=$2 last;
    rewrite ^/all/vip([0-2])_index_([0-9]+).html$ /index.php?mod=vip&vip=$1&id=$2 last;
    rewrite ^/sort([0-9]+)/index_([0-9]+).html$ /index.php?mod=sort&sortid=$1&id=$2 last;
    rewrite ^/sort([0-9]+)/vip([0-2])_index_([0-9]+).html$ /index.php?mod=sortvip&sortid=$1&vip=$2&id=$3 last;

    =========我初步想是这个原因吗?我可是在二级页面成功显示了哦,进入看小说内容阶段就没内容了…
    我的a.zhissd.cn 希望你看下,分析下.苦等您的解释!这是我在这唯一的和您联系的可能了,8托了!THANKS

回复 王勇 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据