【问题标题】:htaccess rewrite PNG as JPG in specific directorieshtaccess 在特定目录中将 PNG 重写为 JPG
【发布时间】:2013-03-12 18:29:28
【问题描述】:

基本上,我将网站上的图像生成从 PNG 更改为 JPG,并转换了所有现有文件以节省空间。问题在于对旧 PNG 版本的请求。

这只影响了一些特定的目录,例如 /imgs/profiles/

我试图自己理清规则,但它让我发疯。

如果有人能给我一个在 /imgs/profiles/ 中将 PNG 请求重写为 JPG 的示例,我可以在此处对所有其余部分进行排序以节省空间。

编辑 - 我的 htaccess 顶部的部分

FileETag None
Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.site.net
RewriteRule (.*) http://www.site.net/$1 [R=301,L]

ErrorDocument 404 /404.php
ErrorDocument 300 /404.php

RewriteBase /imgs/profiles/
RewriteRule ^([^.]+)\.png$ /$1.jpg [R=301,L,NC]

RewriteRule ^file file.php [L,NC]

【问题讨论】:

    标签: .htaccess png rewrite jpeg


    【解决方案1】:

    通过httpd.conf启用mod_rewrite和.htaccess,然后把这段代码放到你.htaccess$DOCUMENT_ROOT/imgs/profiles目录下:

    Options +FollowSymLinks -MultiViews
    # Turn mod_rewrite on
    RewriteEngine On
    RewriteBase /imgs/profiles/
    
    RewriteRule ^([^.]+)\.png$ /imgs/profiles/$1.jpg [R=301,L,NC]
    

    编辑:我在这里为您的 .htaccess 提供修复:

    确保此 .htaccess 直接位于您的 $DOCUMENT_ROOT 目录下:

    FileETag None
    Options +FollowSymLinks -MultiViews
    RewriteEngine On
    RewriteBase /
    
    ErrorDocument 404 /404.php
    ErrorDocument 300 /404.php
    
    RewriteCond %{HTTP_HOST} !^www\.site\.net$ [NC]
    RewriteRule ^(.*)$ http://www.site.net/$1 [R=301,L]
    
    RewriteRule ^(imgs/profiles/[^.]+)\.png$ /$1.jpg [R=301,L,NC]
    
    RewriteRule ^file/?$ /file.php [L,NC]
    

    【讨论】:

    • 嗯,当我应用它确实重写为 jpg 但目录不正确时,对 /imgs/profiles/6.png 的请求导致 /imgs/profiles/imgs/profiles/6.jpg跨度>
    • 啊哈改变 RewriteRule ^([^.]+)\.png$ /imgs/profiles/$1.jpg [R=301,L,NC] 到 RewriteRule ^([^.]+) \.png$ /$1.jpg [R=301,L,NC] 有效,我猜是因为重写后的基础是root
    • 是的,您对基本根目录是正确的。很高兴它对你有用。
    • 嗯,它在本地工作,但 htaccess 中的其他请求也指向 /imgs/profiles :/
    • @FaTe 请添加您的解决方案作为新答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 2013-01-24
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多