1、首先确认你已经开启服务器的路由重写模块,如果不确认,请在httpd.conf文件中查找如下代码,并将前面的#符号删除,重启服务器,即开启了重写模块
LoadModule rewrite_module modules/mod_rewrite.so
2、建立虚拟主机
<VirtualHost 127.0.0.1>
DocumentRoot "E:/Server/apache2.2/htdocs/xxx/"
ServerName xxx.com
DirectoryIndex index.php
<Directory "E:/Server/apache2.2/htdocs/xxx/">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
请注意代码
AllowOverride All#这行代码为URL重写的关键命令。
Allow from All
其他你根据实际情况设置,然后重启服务器
3、在xxx文件夹下新建 .htaccess文件,添加如下代码
# rewrite规则
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f#这里将除了实际文件以为的所有其他请求都指向下行代码给出的脚本,这里是index.php
RewriteRule .* index.php
在windows下无法直接创建 .htaccess文件,请注意前面有“点号”
很奇怪,在 Windows 资源管理器里面不允许你建立 .htaccess 这样只有扩展名的文件。所以你必须先将文件保存为其他名字,例如 app.htaccess。然后进入命令行窗口(通过开始菜单运行 cmd.exe 程序即可),输入 ren a.htaccess .htaccess 命令来对文件改名。或者新建一个记事本,另存为.htaccess 即可。
4、编写E:/Server/apache2.2/htdocs/xxx下的index.php文件,代码如下
<?php
echo "you did it<br/>";
echo "you came from URL ".$_SERVER['REDIRECT_URL'];
?>
通过浏览器访问xxx.com/将访问到该index.php,并输出you did it
通过浏览器访问xxx.com/index.html将访问到该index.php,并输出
you did it
/index.html