403 htaccess重定向后出现禁止错误

时间:2012-10-18 01:58:40

标签: regex .htaccess http-status-code-403

我有一个.htaccess文件,用于通过获取文件扩展名从相应的文件夹中获取图像,js和css。它应该始终从/ img,/ js和/ css中获取根文件夹中的文件。

我对css和js的行很好用:

RewriteRule ^(([a-zA-Z0-9\-\.\/]+)/)?([a-zA-Z0-9\-\.]+).js$ js/$3.js [NC,L]
RewriteRule ^(([a-zA-Z0-9\-\.\/]+)/)?([a-zA-Z0-9\-\.]+).css$ css/$3.css [NC,L]

但是当我尝试为图像使用类似的行时,我得到403"您无权访问/ img /在此服务器上。"错误:

RewriteRule ^(([a-zA-Z0-9\-\.\/]+)/)?(([a-zA-Z0-9\-\.]+).(jpg|png|svg|gif))?$ img/$3 [NC,L]

主页上的一切正常,但如果您尝试使用mydomain.com/contact/等其他页面,则会收到403错误。即使您在浏览器中复制并粘贴图像URL,也可以正常打开。

我测试了正则表达式here,它没问题。可能导致问题的原因是什么?

1 个答案:

答案 0 :(得分:1)

RewriteRule ([a-z0-9\-\.]+)\.(js|css)$ $2/$1.$2 [NC,L]
RewriteRule ([a-z0-9\-\.]+)\.(jpe?g|png|svg|gif)$ img/$1.$2 [NC,L]