这是“this.com”的配置文件中:
RedirectMatch 301 ^/dham/(.*)$ http://other.com/dham/$1
服务器已重启。然后我 curl 一个应该匹配的地址:
~$ curl http://this.com/dham/abc
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>404 Not Found</title>
<h1>Not Found</h1>
为什么不起作用?是的,服务器读取了这个配置文件(我故意拼错了指令,导致重新启动时出错,从而证实了这一点)。我本来希望看到重定向消息。
[编辑] 这种更简单的方法也不起作用:
Redirect 301 /dham http://other.com/dham
进一步直接根据文档进行操作。这种方法甚至行不通,服务器无法启动,并给出有关缺少目标 URL 的错误消息。文档清楚地表明,在位置块中,只需要目标 URL(因为源当然可以从位置中得知)。我正在运行 Apache 2.4。
<Location "/dham">
Redirect 303 "http://other.com/dham"
</Location>
答案1
事实证明我不明白的是,按字母顺序排列的“较晚”conf 文件中的指令将优先于较早的指令。文档说文件是按字母顺序处理的,我理解的意思是,传入的请求将按照文件顺序对照指令进行检查。
所以...我取出了其他文件,一切都正常。