使用htaccess重定向到照片

时间:2011-11-18 09:22:51

标签: .htaccess mod-rewrite

基本上我正在使用htaccess 我有一个隐藏的目录,我宁愿不使用它,我想要更短的链接:

我想

http://example.com/12940.png

转到

http://example.com/_images/12940.png

这是我的规则:

RewriteRule ^([A-Za-z0-9\_\-\/]+).([A-Za-z]+)$  "_images/$1.$2"

它出了什么问题,我得到了500。

2 个答案:

答案 0 :(得分:3)

以下是您必须做的事情:

RewriteEngine On
RewriteRule ^([a-z0-9_\-]+)\.([a-z]+)$ _images/$1.$2 [NC,L]

使用NC(不区分大小写)您不需要放置A-Za-Z,L表示最后一条规则,以防您在此之后有其他规则。

答案 1 :(得分:0)

此规则失败,因为其中包含/。因此重定向的URL(_images/12940.png)再次被规则捕获,并且mod_rewrite尝试将其重定向到(_images/_images/12940.png)。

因此,您应该检查路径是否已经_images启动:

RewriteRule ^(?!_images)([A-Za-z0-9\_\-\/]+).([A-Za-z]+)$  "_images/$1.$2"

此外,您可以进一步改善您的规则:

RewriteRule ^(?!_images)([a-z0-9_\-/]+\.[a-z]+)$  _images/$1 [NC]

无需转义_/,但您应该转义.,因为它会匹配任何字符。 NC使规则不区分大小写,因此您不需要额外的A-Z