3

我正在寻找一种方法将我的所有图像请求从一个文件夹重写到some.php文件中,同时保留原始图像 url(或部分路径)。

所以,

example.com/folder/img/test.jpg

将被重写为

example.com/folder/some.php?img=img/test.jpg

(这是最好的方法吗?)

我对正则表达式不太熟悉,所以我会非常感激:)

注意:我之前尝试过一些解决方案,但都没有奏效。另外,我在CentOS环境下运行Apache 2.0 。

4

3 回答 3

4

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_ROOT目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^(folder)/(img/[^.]+\.jpg)$ $1/some.php?img=$2 [L,QSA,NC]

确保:

  • .htaccess 已启用
  • mod_rewrite 已启用
  • 你的网址是http://example.com/folder/img/test.jpg
于 2012-10-17T12:04:06.087 回答
2

听起来您希望将 url 中图像的文件名包含在新的 php url 中,而不是整个 url。所以像:

RewriteRule ^folder/img/(.*[.]jpg)$ /folder/some.php?filename=$1
于 2012-10-17T01:21:26.830 回答
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*) 并在规则的右侧添加引用。

希望这可以帮助。

再见

于 2012-10-17T01:45:10.270 回答