Apache 重定向匹配

Apache RedirectMatch

我在 apache 服务器 (2.2) 上工作,我正在尝试根据 URL 过滤器重定向 URL。例如,

 https://mywebsite.com/path/to/page?folder=folderDirectory/folderName

将重定向到:

 https://mywebsite.com/static/contentUnavailable.html

在我的 httpd.conf 文件中,我有以下代码..

 RedirectMatch (.*)path/to/page?folder=folderDirectory/folderName /static/contentUnavailable.html

我每次修改这个文件时都会重启apache,但是页面没有重定向。我在 RedirectMatch 中做错了什么?

您不能将查询字符串与重定向匹配相匹配,抱歉,为此您需要 mod_rewrite 并使用 RewriteCond。粗略示例:

RewriteCond %{QUERY_STRING} ^folder
RewriteRule ^ /static/contentUnavailable.html [R,L,QSD]

这将匹配以文件夹开头的查询字符串(并继续任何其他内容,无论它是什么)。并将所有内容重定向到您想要的目的地,丢弃过程中的查询字符串(QSD 标志)。

无论如何,让我赞扬你首先尝试坚持 redirect/redirectmatch(而其他人只是盲目地选择 mod_rewrite,即使是最简单的重定向)。你做得对。