2011-11-18 78 views
4

基本上我使用htaccess的 我有我宁可不使用一个隐藏目录,我想更短链接:重定向到的照片与htaccess的

我想

http://example.com/12940.png 

到转到

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

这里是我的规则:

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

有什么不对的地方,我得到500

回答

3

这里是你必须做的:

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

使用NC(不区分大小写)你不需要把A-ZA-Z和如果您在此之后有其他规则,则表示最后一条规则。

0

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

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

你也可以进一步提高您的规则是这样的::

所以,你应该如果路径与_images媒体链接开始检查

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

无需躲避_/,但你应该逃避.,因为它匹配任何其他字符。 NC使规则不区分大小写,所以你不需要额外的A-Z