首页 文章

Apache mod_rewrite - 根本不会发生重写

提问于
浏览
2

我在Windows机器上运行Apache 2.2 .

我正在尝试添加一些URL重写指令,并以最简单的理智开始 - 将每个URL重写为http://www.facebook.com .

httpd.conf ,我添加了以下内容:

LoadModule rewrite_module modules / mod_rewrite.so

稍后在文件中,以下内容:

RewriteRule上的RewriteEngine ^( . *)$ http://www.facebook.com [R]

重定向根本不会发生: when I access existing files, I get them. When I access non-existing addresses, I get the server's 404 page .

我尝试了更复杂的重写,结果相同 .

可能是什么问题?是否有任何日志文件我应检查有关重定向失败的提示?谢谢!

2 回答

  • 1

    您必须在 VirtualHost 部分放置 AllowOveride All

    <Directory /path/to/your/www/>
        AllowOveride All
    </Directory>
    
  • 0

    您必须将重写规则放在虚拟主机块中

    <VirtualHost lan-ip:80>
    
    ServerName mysite.com
    ServerAdmin admin@mysite.com
    DocumentRoot /path/to/site
    
    RewriteEngine on
    RewriteRule ^(.*)$ http://www.facebook.com [R]
    
    </VirtualHost>
    

    lan-ip可以是localhost,或者更有可能是专用的ip来服务mysite.com . 对于本地开发,您可以将您的NIC别名为192.168.1.101,并修改/ etc / hosts(在Linux上),如下所示:

    192.168.1.101 mysite.com

    然后在浏览器中,您可以访问mysite.com并针对本地测试实例进行测试 .

相关问题