通过传递变量处理图像URL(.htaccess)

时间:2015-05-28 11:33:16

标签: apache .htaccess mod-rewrite redirect

我想以两种不同的方式处理我的图片网址。 首先,当浏览器要求: http://example.com/image.jpg(需要显示)

其次,当浏览器要求: http://example.org/image.jpg?actionId=123(需要将URL重写为index.php?actionId = 123)

关键是,当URL有指定变量时,我们需要使用该变量及其值重定向到index.php。

我正在使用带有mod_rewrite的.htaccess,现在是以下内容:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [QSA]
</IfModule>

所以它检查现有文件或目录,任何其他方式,它都传递给'q'参数中的index.php。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

对于第一个示例,您不需要执行任何操作,将显示图像(如果存在)。因此,您只需要考虑查询字符串的情况:

RewriteEngine On
RewriteCond %{QUERY_STRING} actionId=([^&]+)
RewriteRule \.jpg$ index.php?actionId=%1 [L]

如果还有其他参数需要传递给index.php,那么只需执行重写即可,因为默认情况下会发送查询字符串。确保使用QSA标志:

RewriteEngine On
RewriteCond %{QUERY_STRING} actionId=([^&]+)
RewriteRule \.jpg$ index.php [QSA,L]