我正在寻找一种方法来重写所有的图像请求从一个文件夹到some.php文件,同时保留原始图像的url(或部分path)。
所以,
example.com/folder/img/test.jpg
会被重新编写成类似的东西
example.com/folder/some.php?img=img/test.jpg
(这是最好的办法?)
我不熟悉正则expression式,所以我会非常感谢:)
注意:我已经尝试了一些解决scheme之前,他们都没有工作。 另外,我在CentOS环境下运行Apache 2.0 。
通过httpd.conf
启用mod_rewrite和.htaccess,然后把这个代码放在你的.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]
如果文件夹是变量,则可以更改(\ w *),并在规则的右侧添加引用。
希望这可以帮助。
再见