【问题标题】:Htaccess rewrite image URLs in SEO friendly wayHtaccess 以 SEO 友好的方式重写图像 URL
【发布时间】:2017-08-22 06:42:46
【问题描述】:

我在我的网站上上传了这些图片,其中一些随机数字和文本作为它们的名称,我希望它们以正确的名称加载到网站中。

图像现在如何通过其绝对 URL 加载

http://www.example.com/uploads/folder_n/t_xxxx_20170407030916_888867.jpeg

我希望图像如何加载,

http://www.example.com/uploads/folder_n/itemname-thumb-xxxx_20170407030916_888867.jpeg

我试过了,但是没用。

RewriteRule ^uploads/([a-zA-Z0-9_]+)/([a-zA-Z0-9_\-]+)-thumb-([a-zA-Z0-9_\-\.]+)$ /uploads/$1/t_$3 [R=301,NC]
  • "/folder_n/" -> 动态更改此文件夹名称
  • "t_" -> 应该是 "thumb-"
  • "itemname" -> 动态变化
  • "xxxx_20170407030916_888867.jpeg" -> 这也会动态变化

如何使用 htaccess 重写规则来做到这一点?

谢谢

【问题讨论】:

    标签: php regex apache .htaccess url-rewriting


    【解决方案1】:

    您可以在RewriteEngine On 行下方使用此规则:

    RewriteRule ^(uploads/[\w-]+)/[\w-]+-thumb-([\w.-]+)/?$ /$1/t_$2 [L,NC]
    

    【讨论】:

    • 好的,现在这工作了,但它重定向到绝对路径。
    • RewriteBase 未设置。
    • 在这种情况下,it redirects to the absolute path 是什么意思?在我的 Apache 上,它加载 http://localhost/uploads/folder_n/t_xxxx_20170407030916_888867.jpeg
    • 当重写的 URL 在浏览器中加载时,它会转到绝对 URL“localhost/uploads/folder_n/t_xxxx_20170407030916_8888‌​67.jpeg”。我们可以保留更改后的 URL 并仍然加载真实图像吗?
    • 好的,您可以从上面的规则中删除 R 标志以使其成为:RewriteRule ^(uploads/[\w-]+)/[\w-]+-thumb-([\w.-]+)/?$ /$1/t_$2 [L,NC] 并将此规则保留在顶部。但请记住,内部重写规则(没有R 标志)不适用于许多 php 框架。
    猜你喜欢
    • 1970-01-01
    • 2016-05-02
    • 2021-07-06
    • 2015-01-04
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    相关资源
    最近更新 更多