【问题标题】:Apache RewriteRule .* index.php [NC,L] Not workingApache RewriteRule .* index.php [NC,L] 不工作
【发布时间】:2010-03-14 03:05:51
【问题描述】:

我正在尝试将 /website/folder/ 目录中的所有内容重定向到单个页面。

我用这个简单的代码添加了一个简单的 .htaccess(我知道这需要 .htaccess 中的更多代码,但这只是一个测试)。

RewriteEngine on
RewriteRule .* index.php [NC,L]

当我尝试时:

http://127.0.0.1:8888/website/folder/fileDoesntExistMustGoIndex

我有一个“找不到对象 404”错误和 access.log 显示:

127.0.0.1 - - [13/Mar/2010:13:48:31 -0500] "GET /website/folder/fileDoesntExistMustGoIndexHTTP/1.1" 404 1118

我检查了 httpd.conf 并没有发现任何可以改变这个 .htaccess 语句的东西。有什么想法吗?

编辑:

RewriteEngine on
RewriteRule .* http://www.google.ca [NC,L]

这可行...但当我尝试重写我的页面时却不行。

【问题讨论】:

    标签: php apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:
    RewriteEngine On
    RewriteBase /
    RewriteRule . index.php
    

    也试试

    RewriteLog "rewrite.log"
    RewriteLogLevel 3
    

    看看会发生什么

    【讨论】:

    • 我无法让它与 RewriteLog 一起使用。我总是出现服务器错误。但是,如果我删除 RewriteLog 语句并将您的 RewriteBase 与: RewriteBase /website/folder/ 一起使用,它确实有效。我将尝试弄清楚如何不必使用 RewriteBase /website/folder/ 因为在生产服务器中这些文件夹不一样。谢谢你的回答:)
    • 我将 RewriteLog 添加到 httpd.conf 中,现在可以看到更多详细信息。非常感谢 luca 提供的所有这些信息。
    • 没有 RewriteBase 的问题是因为在 httpd.conf 我有一个别名!非常感谢你的帮助。我现在对重写的工作原理有了更多了解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 2019-12-06
    • 2015-09-09
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    相关资源
    最近更新 更多