首页 文章

使用txt文件的apache rewritemap - 匹配失败

提问于
浏览
0

我正在尝试使用简单的txt文件为一个特殊项目 Build 一个重写映射,该项目最终将包含大约150个重定向 .

我已经阅读了这里的其他帖子,并试图应用备用mod,但我只是不能从这实际上按预期进行单一重定向: - /

要确认我的设置:

我正在使用include .conf更新我的httpd.conf以获取正确的虚拟主机 . 在运行/ scripts / rebuildhttpdconf(以及'service httpd restart')时,它会在没有错误的情况下应用,并且httpd.conf中相应的Include Path引用将被取消注释,这告诉我它正在按预期找到包含文件 . Include文件名为'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不会执行任何重定向 - 无论是否注释掉前两个条件 .

我尝试了很多变化,有时可以完全破解它(重写循环错误,whitescreen,甚至重定向工作的情况,但不是去维护2.html,它将/ home / example / public_html附加到网址 - ???) - 但是在任何时候我都不能按照预期重新定位上面的例子 .

我尝试从VPS的主机获得帮助,但他们不支持此类修改 .

我希望有人可以看看上面的内容,也许会看到一些我不知道的东西?任何想法都欣赏......

1 回答

  • 0

    我终于能够用我的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]
    

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

相关问题