我正在寻找一种方法将我的所有图像请求从一个文件夹重写到some.php文件中,同时保留原始图像 url(或部分路径)。
所以,
example.com/folder/img/test.jpg
将被重写为
example.com/folder/some.php?img=img/test.jpg
(这是最好的方法吗?)
我对正则表达式不太熟悉,所以我会非常感激:)
注意:我之前尝试过一些解决方案,但都没有奏效。另外,我在CentOS环境下运行Apache 2.0 。
我正在寻找一种方法将我的所有图像请求从一个文件夹重写到some.php文件中,同时保留原始图像 url(或部分路径)。
所以,
example.com/folder/img/test.jpg
将被重写为
example.com/folder/some.php?img=img/test.jpg
(这是最好的方法吗?)
我对正则表达式不太熟悉,所以我会非常感激:)
注意:我之前尝试过一些解决方案,但都没有奏效。另外,我在CentOS环境下运行Apache 2.0 。
通过启用 mod_rewrite 和 .htaccess httpd.conf
,然后将此代码放在您.htaccess
的DOCUMENT_ROOT
目录下:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^(folder)/(img/[^.]+\.jpg)$ $1/some.php?img=$2 [L,QSA,NC]
确保:
http://example.com/folder/img/test.jpg
听起来您希望将 url 中图像的文件名包含在新的 php url 中,而不是整个 url。所以像:
RewriteRule ^folder/img/(.*[.]jpg)$ /folder/some.php?filename=$1
考虑到您在评论中提到的内容以及之前的规则不起作用,我编辑了消息,这就是我现在所拥有的。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/(.*)\.jpg [NC]
RewriteRule ^folder/img/([\w]*\.jpg)$ folder/some.php?img=img/$1[R=301,L]
如果文件夹是 al 变量,您可以将其更改为 (\w*) 并在规则的右侧添加引用。
希望这可以帮助。
再见