Mac环境下Apache开启Rewrite模块

MAC OSX 下启用自带的Apache的rewrite模块

1.  修改Apache配置文件

sudo vim /etc/apache2/httpd.conf

去掉下面这一行前面的#

LoadModule rewrite_module libexec/apache2/mod_rewrite.so


 2.  打开允许所有访问的总开关

# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
#
<Directory />
     #Options Indexes MultiViews
     Require all granted
    AllowOverride none
   # Require all denied
</Directory>

注释掉 #Require all denied,

增加一行  Require all granted


 3.  新增一个虚拟网站根目录

vim  /etc/apache2/extra/httpd-vhosts.conf

增加 一个 VirtualHost, 并且将 Directory的配置写好,

如下的配置 

<VirtualHost *:80>
    DocumentRoot "/Users/beyond/wwwroot/xxx/yyy/public"
    ServerName api.beyond.com
    <Directory "/Users/beyond/wwwroot/xxx/yyy/public">
    Options FollowSymLinks
    AllowOverride All
    Require all granted
    </Directory>
    ErrorLog "/private/var/log/apache2/api_movie-error_log"
    CustomLog "/private/var/log/apache2/api_movie-access_log" common
</VirtualHost>

4.  修改本机的host设置

(vim /etc/hosts)

127.0.0.1   xxx.com


5.  重启apache   

sudo apachectl restart

ps -ef |grep httpd


6.  测试rewrite的功能

在网站的根路径下,创建.htaccess文件,将该文件的权限设置为777

sudo chmod 777 .htaccess

以下为.htaccess测试实例: 

# BEGIN
<IfModule mod_rewrite.c>
RewriteEngine  on
RewriteBase /
RewriteRule .*$ http://www.baidu.com
</IfModule>
#END

测试方法:

访问网站任何路径页面,均会跳转到baidu,说明Rewrite已生效。


提醒:正常修改.htaccess一般都是即时生效,

如果修改的是apache conf配置文件,一般需要重启apache一次。