zoukankan      html  css  js  c++  java
  • 在.htaccess文件中写RewriteRule无效的问题的解决

    近来在Apache Rewrite 拟静态配置时,遇到个问题。写的如下:

    RewriteEngine on
    RewriteRule ^/t_(.*)/$ /test.php?id=$1

    保存在httpd.conf文件中时,发现可以起作用。

    而写在.htaccess文件中,死活不起作用。经过研究发现,里面随便填写字符,服务器报500错误,而且进行定向也没问题,所以不是访问不到的问题,初步猜测应该是语法的问题。后来在百度“RewriteRule  .htaccess”时 找到一篇文章,  文章标题:《URL RewriteRule在httpd.conf和.htaccess中的不同点》 看到了:

    需要注意的是,在这两个文件中添加到URL重写规则略有不同。而这些不同,对于不熟悉的人来说,很可能会困扰许久。

    在Httpd.conf中: (1)Request URI的开头必须以斜线开始; (2)在寻找Cache文件的时候,必须在开头加上斜线; (3)在使用-f或者!-f的时候,必须在开头加上斜线。

    在.htaccess中,情况完全相反: (1)Request URI的开头不能有斜线; (2)在寻找Cache文件的时候,不能在开头加上斜线; (3)在使用-f或者!-f的时候,不能在开头加上斜线。

    简单而言,就是在httpd.conf中,重写前后的URL在使用绝对路径时需要添加斜线“/”,表示从网站根目录开始;而在.htaccess中,则不需要。

     把.htaccess文件中的/去掉  测试OK了。

  • 相关阅读:
    关系/比较运算符
    字符串连接符
    算数运算符
    基本数据类型之间的转换
    常用的进制
    数据类型的分类
    变量
    java目录结构
    C语言获取系统时间及time.h函数使用指南
    链表:单向链表的理解,创建及基本操作
  • 原文地址:https://www.cnblogs.com/zwl24/p/4312227.html
Copyright © 2011-2022 走看看