apache 开始路由(rewrite)

学习目的:让url支持   www.dev.com/Public/index.html 这样的形式

(1)前提apache和php已经能用了。

设置apache配置文件

#apache2.4.9\conf\httpd.conf

找到如下一行

#LoadModule rewrite_module modules/mod_rewrite.so

改为(去掉# 符号表示开启(加载)此模块)

LoadModule rewrite_module modules/mod_rewrite.so

<Directory

Options Indexes FollowSymLinks

AllowOverride none

中none 改为 all(允许 htaccess 重写)

AllowOverride all

让 .htaccess 支持需要省略index.php 配置如下

# .htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>

重点句是:RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

RewriteEngine on RewriteEngine On|Off RewriteEngine 用于开启或停用rewrite功能

(2) 还是403 页面  www.dev.com/Public/index.html

而 www.dev.com/index.php/Public/index.html  能正常访问

检查httpd.conf 文件, 发现有下面一段

<Directory />
    AllowOverride all
    Require all denied
</Directory>

Require all denied(拒绝所有访问)

去掉这句。再次访问,可以正确访问(希望发现问题的人,能一起交流学习)

附上:vhost配置信息

<VirtualHost *:80>

    DocumentRoot "D:/code/svn_yilinker/tagwebsys/"

    ServerName local.tagwebsys.com

    ErrorLog "logs/dummy-local.tagwebsys.com-error.log"

    CustomLog "logs/dummy-local.tagwebsys.com-access.log" common

    <Directory "D:/code/svn_yilinker/tagwebsys/">

           Options Indexes FollowSymLinks

           AllowOverride ALL  

           Order allow,deny

           Allow from all

    </Directory>

</VirtualHost>


你可能感兴趣的:(apache,PHP,htaccess,开启)