windows下安裝apache默認是沒有開啟mod_rewrite模塊的,啟用也很簡單,修改apache配置文件httpd.conf,將#LoadModule rewrite_module modules/mod_rewrite.so這一行前面的#號去掉,改為LoadModule rewrite_module modules/mod_rewrite.so
為了測試mod_rewrite模塊是否啟用成功,可以采用一個簡單的例子測試一下.
在htdocs下新建.htaccess文件,可以打開記事本另存-所有文件,文件名為.htaccess,在windows下直接改名是無法改成.htaccess文件的,在文件中輸入:
RewriteEngine On
RewriteBase /
RewriteRule ^(.+)$ index.html
然后都瀏覽器localhost/后隨便輸入abc,然后回車,是不是顯示It works!
需要注意的是,我們這里是在根目錄下使用.htaccess,如果我們的網站在子目錄中,雖然我們有.htaccess文件,同時也啟用apache的mod_rewrite模塊,但是我們依然會遇到無法找到頁面錯誤,原因在哪里呢?
還是httpd.conf文件,找到<Directory “D:/Apache2.2/htdocs”>,就是文檔根目錄,根據安裝位置不同會有所不同,將AllowOverride None改為AllowOverride All,其實文件注釋里說的很明白的
AllowOverride controls what directives may be placed in .htaccess files.
It can be “All”, “None”, or any combination of the keywords:
Options FileInfo AuthConfig Limit
至此,重啟apache后子目錄也可以使用.htaccess實現url重寫了.