我们通过相同的代码运行多个域,我们希望将它们的图像保存在各自的文件夹中。这就是我们正在做的事情。
/images/www.domain1.com/logo.jpg /images/www.domain2.com/logo.jpg
现在,我想知道的是,在 htaccess 中我们是否可以在用户不怀疑的情况下重写 url。这就是我想要的
<img src="/images/logo.jpg" />
应该在内部通过 htaccess 成为
RewriteRule ^images/(.*)$ /images/{HTTP_HOST}/$1 [L,R=301]
但我的问题是,
- 上面的重定向不断循环
- 我能否在用户或管理员不怀疑的情况下实现 img 效果?
此致
古兰经
最佳答案
删除 R=301
以简单地重写而不是重定向:
RewriteRule ^images/(.*)$ /images/{HTTP_HOST}/$1 [L]
它不断循环的原因是 301 重定向导致为 url images/www.domain1.com/logo.jpg
创建一个新请求。该 URL 也与您的 ^images/(.*)$
规则匹配,因此它会再次重定向,无限次。
如果你真的想做一个 301 重定向(我怀疑你不想,但如果你做了),你可以通过添加一些重写条件来解决无限循环问题,如果域已经包含则跳过重定向:
RewriteCond {REQUEST_URI} !^images/www.domain1.com/(.*)$
RewriteCond {REQUEST_URI} !^images/www.domain2.com/(.*)$
RewriteRule ^images/(.*)$ /images/{HTTP_HOST}/$1 [L,R=301]
关于php - htaccess 在用户不知情的情况下重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9947608/