我正在尝试使用一个简单的 txt 文件为一个最终包含大约 150 个重定向的特殊项目建立一个重写映射。
我已经阅读了此处的其他帖子并尝试应用替代模块,但我无法从中进行单个重定向实际上按预期工作:-/
要确认我的设置:
我正在使用包含 .conf 来为正确的虚拟主机更新我的 httpd.conf。在运行 /scripts/rebuildhttpdconf (和“服务 httpd 重新启动”)后,它会被正确应用,并且 httpd.conf 中的相应包含路径引用被取消注释,这告诉我它正在按预期找到包含文件。包含文件称为“redirecttest2.conf”,包含:
RewriteMap redirect2 txt:/home/example/public_html/redirecttest/redirect2.txt
在上面提到的位置,我有文件'redirect2.txt',用于测试目的包含:
maintenance.html http://www.example.com/maintenance2.html
maintenance1.html http://www.example.com/maintenance2.html
所以我的期望是当输入“example.com/maintenance.html”时,它会被重定向到maintenance2.html等。
在受影响域根目录的 .htaccess 文件中,我目前有以下内容:
RewriteEngine on
RewriteCond %{REQUEST_URI} !(\.(js|css|less|png|php|swf|flv|jpg))$
RewriteCond {redirect2:$1} !=""
RewriteRule ^/(.*) ${redirect2:$1} [R=301,L]
但是,这目前没有任何效果。输入 example.com/maintenance.html 或 maintenance1.html 不会执行任何重定向 - 无论是否注释掉前两个条件。
我尝试了许多变体,有时能够完全打破它(重写循环错误、白屏,甚至重定向工作的情况,但不是转到maintenance2.html,而是将/home/example/public_html附加到url - ???) - 但我无论如何都无法让上面的示例按预期重定向。
我尝试从 VPS 的主机获得帮助,但他们不提供对此类修改的支持。
我希望有人可以看看上面的内容,也许会看到我遗漏的一些明显的东西?任何想法表示赞赏...