图像URL htaccess的重写规则 [英] htaccess rewrite rule for image url

查看:155
本文介绍了图像URL htaccess的重写规则的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的网址: http://www.mywebsite.com/i/1Q2GmFuFdZ.jpg

我想重写规则,使得它去到文件 image.php?ID = 1Q2GmFuFdZ.jpg

I want to rewrite a rule that makes it go to the file image.php?id=1Q2GmFuFdZ.jpg

在我的PHP文件,我有这样的

In my PHP file, I have this

<?PHP
print_r($_GET);
?>

这是我在我的htaccess

This is what I have in my htaccess

RewriteEngine On
RewriteRule ([a-zA-Z0-9]+[\.]+[a-z]{3})$ image.php?id=$1

这是我得到的输出:

Array ( [id] => image.php )

我不知道我做错了。我不是正则表达式亲,但我知道的基本知识。

I am not sure what I am doing wrong. I'm no regex pro but I know the basics.

感谢

编辑: 忘了补充0-9在EX pression

Forgot to add 0-9 in expression

推荐答案

mod_rewrite规则的递归应用。下面是当您请求 1Q2GmFuFdZ.jpg 会发生什么:

mod_rewrite rules are applied recursively. Here is what happens when you request 1Q2GmFuFdZ.jpg:

  • 1Q2GmFuFdZ.jpg 匹配模式,变为 image.php?ID = 1Q2GmFuFdZ.jpg
  • 由于文件名已经改变,另一次迭代与所述重新编写的URL执行
  • image.php 匹配模式以及并改写为 image.php ?ID = image.php
  • 在文件名或目录并没有变化,所以没有进一步的迭代执行
  • 最终结果:<?code> image.php ID = image.php
  • 1Q2GmFuFdZ.jpg matches the pattern, becomes image.php?id=1Q2GmFuFdZ.jpg
  • Since filename has changed, another iteration is performed with the re-written URL
  • image.php matches the pattern as well and rewritten as image.php?id=image.php
  • File name or directory did not change so no further iteration is performed
  • End result: image.php?id=image.php

解决方法:添加此规则:

Solution: add this rule:

RewriteEngine On
RewriteRule image\.php$ - [L]
RewriteRule ([a-zA-Z0-9]+\.[a-z]{3})$ image.php?id=$1

第二条规则作为手制动。你需要调整规则#3为好。

The second rule acts as a hand-brake. You need to tweak rule #3 as well.

这篇关于图像URL htaccess的重写规则的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆