【问题标题】:apache rewritemap using txt file - match failapache rewritemap 使用 txt 文件 - 匹配失败
【发布时间】: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


    【解决方案1】:

    我终于能够解决我的 RewriteMap 的问题。

    在受影响域根目录的 .htaccess 文件中,我现在使用以下内容:

    RewriteEngine On
    RewriteCond %{REQUEST_URI} !(\.(js|css|less|png|php|swf|flv|jpg))$
    RewriteCond ${redirect2:$1} >"" [NC]
    RewriteRule ^(.*) ${redirect2:$1} [R=301,L]
    

    这现在似乎有效 - 至少对于基本网址而言。

    【讨论】:

      猜你喜欢
      • 2018-09-30
      • 1970-01-01
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 2021-08-22
      • 2023-03-11
      相关资源
      最近更新 更多