Php 图像url的htaccess重写规则
我有网址:Php 图像url的htaccess重写规则,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,我有网址: http://www.mywebsite.com/i/1Q2GmFuFdZ.jpg 我想重写一条规则,使其进入文件image.php?id=1Q2GmFuFdZ.jpg 在我的PHP文件中,我有 <?PHP print_r($_GET); ?> 这是我得到的输出: Array ( [id] => image.php ) 我不确定我做错了什么。我不是regex专业人士,但我知道基本知识 谢谢 编辑: 忘记在表达式中添加0-9,您的重写规则错误。应该是这样的: Re
http://www.mywebsite.com/i/1Q2GmFuFdZ.jpg
我想重写一条规则,使其进入文件image.php?id=1Q2GmFuFdZ.jpg
在我的PHP文件中,我有
<?PHP
print_r($_GET);
?>
这是我得到的输出:
Array ( [id] => image.php )
我不确定我做错了什么。我不是regex专业人士,但我知道基本知识
谢谢
编辑:
忘记在表达式中添加0-9,您的重写规则错误。应该是这样的:
RewriteRule ^i/(.+)$ /image.php?id=$1 [L,NC,QSA]
你的重写规则是错误的。应该是这样的:
RewriteRule ^i/(.+)$ /image.php?id=$1 [L,NC,QSA]
mod_重写规则是递归应用的。下面是当您请求
1Q2GmFuFdZ.jpg
时发生的情况:
匹配模式,成为1Q2GmFuFdZ.jpg
image.php?id=1Q2GmFuFdZ.jpg
- 由于文件名已更改,将使用重新写入的URL执行另一次迭代
也匹配模式并重写为image.php
image.php?id=image.php
- 文件名或目录未更改,因此不会执行进一步的迭代
- 最终结果:
image.php?id=image.php
RewriteEngine On
RewriteRule image\.php$ - [L]
RewriteRule ([a-zA-Z0-9]+\.[a-z]{3})$ image.php?id=$1
第二条规则充当手制动器。您还需要调整规则3。mod#u重写规则是递归应用的。下面是当您请求
1Q2GmFuFdZ.jpg
时发生的情况:
匹配模式,成为1Q2GmFuFdZ.jpg
image.php?id=1Q2GmFuFdZ.jpg
- 由于文件名已更改,将使用重新写入的URL执行另一次迭代
也匹配模式并重写为image.php
image.php?id=image.php
- 文件名或目录未更改,因此不会执行进一步的迭代
- 最终结果:
image.php?id=image.php
RewriteEngine On
RewriteRule image\.php$ - [L]
RewriteRule ([a-zA-Z0-9]+\.[a-z]{3})$ image.php?id=$1
第二条规则充当手制动器。您还需要调整规则#3。我认为它仍然会产生相同的结果(尽管未验证)。我认为它仍然会产生相同的结果(尽管未验证)。