【问题标题】:.htacces rewriterule to redirect if .exe/.zip.htaccess 重写规则以重定向如果 .exe/.zip
【发布时间】:2011-02-03 15:39:55
【问题描述】:

我正在尝试编写 RewriteRule 以将 www.myweb.com/download/blabla.zip 重定向到 > www.myweb.com/download/download.php?filedownload=blabla.zip

这是我的 .htaccess

Options +FollowSymlinks
RewriteBase /download/
RewriteEngine on 
RewriteRule ^(.*)$ download.php?filedownload=$1 [L]

位于文件夹 /download 中的 .htaccess 以及也位于文件夹 /download 中的 download.php 文件

但它不起作用,不知道为什么...... 你能帮帮我吗?

顺便说一句:mod_rewrite 已启用。

谢谢。

【问题讨论】:

  • 我猜你不需要 RewriteBase。 “它不起作用”是什么意思?
  • 我确实需要重写库,因为下载文件夹在主文件夹中。并且“确实有效”=如果 $1 = test.zip,我在文件夹 /download 中得到了名为 test.zip 的文件,因此它会自动转到 www.myweb.com/download/test.zip 而不是 www.myweb.com/下载/download.php?filedownload=test.zip
  • RewriteBase 不需要这样做。 RewriteBase 还有一个功能。

标签: .htaccess mod-rewrite


【解决方案1】:

您的 RewriteRule 正在对自身进行递归,并将 download.php 作为参数传递给自身。

您可以尝试以下任一方法。

仅匹配 zip/exe:

RewriteRule ^(.*\.(zip|exe))$ download.php?filedownload=$1 [L]

要从匹配项中排除 download.php,请将其放在您的 RewriteRule 之前:

RewriteCond %{REQUEST_FILENAME} !download.php

【讨论】:

  • 有效。谢谢! (是不是一定要使用(zip|exe),因为也许以后我也会有不同的格式)
  • 好吧,您可以将其他格式添加到列表中,或者在 RewriteRule 之前尝试 RewriteCond %{REQUEST_FILENAME} !download.php 以将其从任何匹配项中排除。
猜你喜欢
  • 2020-11-01
  • 2016-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
相关资源
最近更新 更多