用mod_rewrite删除字符串单个字符串?

时间:2013-10-24 13:50:51

标签: apache mod-rewrite redirect url-rewriting

我正在尝试重定向包含full-resolution的网址。 我想将其删除。

这就是我目前的情况:

RewriteCond %{REQUEST_URI} full-resolution
RewriteRule ^(.*)/full-resolution/(.*)$ $1/$2

上述结果为空页。

我做错了什么?

修改

我正在使用Adaptive Images来传送适当的设备图片。自适应图像通过截取图像文件请求并将它们发送到PHP脚本来工作,该脚本可以运行一些魔法并提供较小尺寸的图像。自适应图像可以满足我的需求并且工作正常。

但是,我还需要让用户可以访问原始的更高分辨率的图像文件。我需要创建一种逃避自适应图像的方法。

图像位于/assets/img目录中,如下所示:

/assets/img/foo/bar.jpg

我提出的解决方案是在图像路径中包含一个字符串,并让apache简单地删除该字符串。

生成的URL转换将会发生:

/assets/img/full-resolution/foo/bar.jpg

/assets/img/foo/bar.jpg

我的想法是找到正确的图像,避免自适应图像,从而提供原始的高分辨率文件。以下是此虚拟主机的完整脚本。

 <VirtualHost *:80>
    ServerAdmin agarritano@localhost
    ServerName pmportal.local
    DocumentRoot /Users/agarritano/pm-portal
    <Directory /Users/agarritano/pm-portal>
        Options FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
        <IfModule mod_rewrite.c>
          RewriteEngine On

          # Add any directories you wish to omit from the Adaptive-Images process on a new line, as follows:
          # RewriteCond %{REQUEST_URI} !ignore-this-directory
          # RewriteCond %{REQUEST_URI} !and-ignore-this-directory-too

          RewriteCond %{REQUEST_URI} !full-resolution

          # don't apply the AI behaviour to images inside AI's cache folder:
          RewriteCond %{REQUEST_URI} !ai-cache

          # Send any GIF, JPG, or PNG request that IS NOT stored inside one of the above directories
          # to adaptive-images.php so we can select appropriately sized versions

          RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php

          RewriteCond %{REQUEST_URI} full-resolution
          RewriteRule ^(.*)/full-resolution/(.*)$ $1/$2

        </IfModule>
    </Directory>

</VirtualHost>.

0 个答案:

没有答案