apache 配置虚拟目录+默认页+隐藏index.php

配置虚拟目录+默认页

如果有多个项目文件夹,怎么配置让localhost指向其中的某个文件夹呢。

1.检查apache的配置文件httpd.conf,看Virtual hosts模块是否开启。

Include conf/extra/httpd-vhosts.conf 。前面的【#】需要去除。

2.打开httpd-vhosts文件, 这里由于80端口被占用了,所以用了8080

<VirtualHost *:8080>

    ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot "C:\wamp\www\myproject\"

    ServerName localhost

    ServerAlias localhost

    <IfModule dir_module>

        DirectoryIndex  index.php

     </IfModule>

    ErrorLog "logs/dummy-host.example.com-error.log"

    CustomLog "logs/dummy-host.example.com-access.log" common

</VirtualHost>

DocumentRoot:项目路径,上例为wamp里面的路径,apache中可以为/www/myproject/Web

ServerName:改为localhost,此配置也可以不需要的

DirectoryIndex:当输入localhost时,默认访问的页面

隐藏index.php

如果需要将127.0.0.1/index.php 改为通过127.0.0.1/index。来访问该怎么实现呢?

这里需要使用apacheRewrite功能。

1.检查apache的配置文件httpd.conf,看rewrite_module模块是否开启。

LoadModule rewrite_module modules/mod_rewrite.so。前面的【#】需要去除。

2.设置httpd-vhosts文件内容

<VirtualHost *:80>

        RewriteEngine On

        RewriteCond %{REQUEST_URI} !^/(css|js|images|ajax)/.*$

        RewriteRule ^(.+)$ /index.php/$1

        ServerAdmin webmaster@dummy-host.example.com

        DocumentRoot "C:\wamp\www\myproject"

        ServerName localhost

        ServerAlias localhost

        <IfModule dir_module>

            DirectoryIndex index.php

          </IfModule>

        ErrorLog "logs/dummy-host.example.com-error.log"

        CustomLog "logs/dummy-host.example.com-access.log" common

        </VirtualHost>

RewriteEngin:设置为【on】,表示路由开启

RewriteCond:路由条件,这里设置如果是访问(cssjsimagesajax)文件夹,则不需要路由

RewriteRule:除了路由条件里面排除的,访问其它的地址,都将跳转到index.php里操作