apache rewrite功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache rewrite功能相关的知识,希望对你有一定的参考价值。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/(.*)$ /index.php/$1 [L,PT]
RewriteRule /a.php/$ b.php/$1
</IfModule>

我确定我模块开启了,就是不能用 我又一个b.php 我用a.php都访问不到

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

还有你的网站是不是通过虚拟主机来定义的,如果是请务必写到<VirtualHost> 里面去。
要重启Apache的。
参考技术A 配置文件里httpd.conf,把AllowOverride None改为AllowOverride All

apache 已经加载模块,但是不能解析出开发的rewrite模块功能

例如  这样配置虚拟域名上正确的DocumentRoot与Directory是有顺序的 

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache/htdocs/api"
    ServerName  api.test.licheepay.com
   <Directory "/usr/local/apache/htdocs/api">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>

    ErrorLog "|/usr/local/sbin/cronolog  /usr/local/apache/logs/api/%Y-%m-%d/ErrorLog_%H.log"
    CustomLog "|/usr/local/sbin/cronolog  /usr/local/apache/logs/api/%Y-%m-%d/CustomLog_%H.log" common

    #ErrorLog "|/usr/local/apache/bin/rotatelogs  /usr/local/apache/logs/api/ErrorLog.%Y-%m-%d-%H_%M_%S.log 10M +480"
    #CustomLog "|/usr/local/apache/bin/rotatelogs  /usr/local/apache/logs/api/CustomLog.%Y-%m-%d-%H_%M_%S.log 20M +480" common
</VirtualHost>
如果是配置了虚拟域名,要在虚拟服务器上加上下面这段,具体可以参考上面 的配置就可以,还要注意的是http.conf是不是对httpd-vhost.conf这个文件包含进来了?需要检查一下

  <Directory "/usr/local/apache/htdocs/api">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>

 























以上是关于apache rewrite功能的主要内容,如果未能解决你的问题,请参考以下文章

Apache Rewrite的主要功能

CentOS下Apache开启Rewrite功能

CentOs中Apache开启rewrite模块详解

Apache Rewrite规则详解

Apache Rewrite规则详解[转]

Apache Rewrite 拟静态