![.htaccess,重定向不起作用,RedirectMatch 起作用](https://linux22.com/image/674676/.htaccess%EF%BC%8C%E9%87%8D%E5%AE%9A%E5%90%91%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%8CRedirectMatch%20%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我遇到了一种从未遇到过的情况。我们刚刚在主机之间移动了一个网站,在新主机上,.htaccess 文件中的 RedirectPermanent 和 Redirect 命令似乎被忽略了,但 RedirectMatch 却被遵守了。
例如:
RedirectMatch /product/C15 http://example.com/topic/category/displays
这有效
RedirectPermanent /product/C534 http://example.com/topic/tag/TVs
这不管用。我也试过
Redirect 301 /product/C534 http://example.com/topic/tag/TVs
这两种方法都不起作用。我检查过了,这与源无关(如果我切换 RedirectMatch 和 RedirectPermanent,则 RedirectMatch 的链接始终有效,而另一个链接始终失败。)
对于不起作用的规则,我最终只能访问 example.com/index.php/product/C15(例如)。就好像 apache 根本不承认 RedirectPermanent 规则
我确实在 htaccess 中设置了一些 mod 重写规则来删除 index.php,但我尝试从空白 .htaccess 开始,只设置 1 条 RedirectPermanent 规则,但仍然失败。Apache 错误日志未显示任何内容,访问日志仅显示这些 URL 转到 404。
我使用的是托管帐户,所以我只能说这么多了。我们至少有十几个不同的帐户使用同一个主机,而 .htaccess 在所有其他帐户上都按预期运行。
有什么想法吗?我已将此问题提交给 ISP,但他们的政策是,他们不提供 .htaccess 问题的支持,但对我来说,这有点像是 apache 配置问题。
答案1
尝试打开重写日志。要打开它,请在 apache 主配置或当前虚拟主机文件(而不是 .htaccess 中)中尝试以下几行:
LogLevel alert rewrite:trace6