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一次。