【问题标题】:.htaccess Rewrite url with images from a folder to a php file.htaccess 用文件夹中的图像将 url 重写为 php 文件
【发布时间】:2015-08-10 01:03:30
【问题描述】:

我想将我的 wp-content/uploads 文件夹中的所有图像重写为 wp-content/thumb 文件夹中的 thumbs.php 文件而不更改 url

这是我在 .htacccess 中添加的内容

# BEGIN img
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{HTTP_USER_AGENT} !someweirdcrawler
RewriteRule ^(wp-content/uploads/.+?)\.(jpe?g|png|gif|svg)$ /wp-content/thumbs/index.php?img_source=http://mywebsite.com/$1.$2 [L]
</IfModule>
# END img
# other wordpress default stuff including wp-fastest-cache

这就是我想要实现的 访问者访问我的网站或任何带有 url 之类的图片

http://mywebsite.com/wp-content/uploads/2050/12/Hello-Dolly-1.0.0.1-words.jpg

重写应该是

http://mywebsite.com/wp-content/thumbs/index.php?img_source=http://mywebsite.com/wp-content/uploads/2050/12/Hello-Dolly-1.0.0.1-words.jpg

*对于那些可能认为... thumbs.php 不是 timthumb 文件的人。我已经编写了自己的无损图像压缩脚本

更新: 它适用于我的其他网站.. 可能是什么问题?

最终更新: 对于那些后来来寻找答案的人。 所以最后是因为我的 WP FASTEST CACHE htaccess 代码。刚刚删除了 -d 指令并像魅力一样工作。但我不再使用此代码,因为我找到了更好的选项。

代码如下:

# BEGIN img
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f
#show original images to Image crawler Like wordpress photon or google images.
RewriteCond %{HTTP_USER_AGENT} !someweirdcrawler
RewriteRule ^(wp-content/uploads/.+?)\.(jpe?g|png|gif|svg)$ /wp-content/thumbs/index.php?img_source=http://mywebsite.com/$1.$2 [L]
</IfModule>
# END img
# other wordpress default stuff including wp-fastest-cache

【问题讨论】:

    标签: wordpress apache .htaccess mod-rewrite


    【解决方案1】:
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} -d
    

    请求的图像永远不会同时是文件目录,因此您的条件永远不会匹配并且请求永远不会被重写。对图像的有效请求只能是文件,因此请删除第二个 RewriteCond 指令(-d 目录检查)。

    它适用于我的其他网站..

    你确定(代码相同)?

    【讨论】:

    • 是的,我已经在我的一个站点上对其进行了测试。即使在删除第二个 RewriteCond 指令(目录检查)之后它也不起作用。可能是什么问题呢。我的改写正确吗?
    • 您的RewriteRule 看起来不错,只要路径正确?那么,究竟会发生什么?没有什么?有什么错误吗?是否启用了 mod_rewrite?是否允许每个目录的 .htaccess 文件?此服务器上的 .htaccess 中是否允许 mod_rewrite? (老实说,如果您有 -d 条件,我看不出它如何在您的其他站点上运行?您的其他站点是 Apache/Linux 吗?)两个服务器配置相同吗?
    • 它转到原始并显示原始图像。我认为 mod_rewrite 必须已经启用,因为 wordpredd 需要 mod_rewrite。夏娃虽然如何检查它是否被禁用?
    • 所以,似乎 什么都没有发生 - RewriteRule 没有做任何事情。您可以尝试将其设置为临时重定向(添加 R 标志) - 只是为了确保没有任何事情发生。后面的其他指令是否有可能再次重写此请求? (如果 WordPress 运行正常,使用“漂亮”的 URL,那么 mod_rewrite 必须正常工作。)
    • 即使在添加 [R] 标志后也不行。
    猜你喜欢
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    相关资源
    最近更新 更多