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,即使是最简单的重定向)。你做得对。
我在 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,即使是最简单的重定向)。你做得对。