1

我正在尝试重定向一个如下所示的 URL:http: //getdotastats.com/sig/28755155.png

对于一个看起来像这样的: http://getdotastats.com/sig/?aid= 28755155

第一个 URL 是不存在的虚构 URL。

我想出的正则表达式如下。你能看看如何改进它。我缺乏必要的知识来形成正则表达式,所以我只是让它匹配组,而忽略那些我不需要的。

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)sig/(.*)\.(.*)$ index.php?aid=$2 [NC,L]

我可以将上述内容放入特定目录(/sigs)中的 .htaccess 中,还是主 vhost 文件中需要其他指令?

感谢您的帮助!

编辑:感谢未来远程信息处理。使用下面的 .htaccess:

RewriteEngine On
RewriteBase /
RewriteRule testpage\.html http://www.google.com [R]
RewriteRule ^/sig/([0-9]+\.(?:gif|png|jpg))$ index.php?aid=$1 [NC,L]

测试页重定向到谷歌,但图像重定向引发以下错误。

The requested URL /sig/28755155.png was not found on this server.

我们必须接近。_

虚拟主机看起来像:

    DocumentRoot /home/www-dota2
    <Directory /home/www-dota2/>
            Options Indexes MultiViews +SymLinksIfOwnerMatch
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>
4

1 回答 1

0

首先,我建议您编写更具体的正则表达式:要匹配/sig/28755155.png,我会这样做:

RewriteRule ^/sig/([0-9]+\.(?:gif|png|jpg))$ index.php?aid=$1 [NC,L]

请记住,您的正则表达式 ^(. )sig/(. ).(.*)$ 可以匹配/somesig/foo/bar/123.png 之类的路径

回答你的问题:

  • 是的,您可以将此规则放在sig文件夹的 htaccess 文件中
  • 是的,为任何子文件夹计算sig文件夹中 htaccess 中的规则(ej:/sig/foo/bar)

希望这可以帮助

于 2013-06-10T19:15:56.640 回答