【发布时间】:2015-02-06 20:09:30
【问题描述】:
我正在尝试使用一个简单的 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 主机获得帮助,但他们不为此类修改提供支持。
我希望有人可以查看上面的内容,也许会看到我遗漏的一些明显的东西?任何想法表示赞赏...
【问题讨论】:
标签: apache rewritemap