没有用户知道的htaccess重定向

Khu*_*ram 3 php apache .htaccess

我们通过相同的代码运行多个域,我们希望将其图像保存在各自的文件夹中.这就是我们正在做的事情.

/images/www.domain1.com/logo.jpg /images/www.domain2.com/logo.jpg

现在,我想知道的是,在htaccess中我们可以在没有用户怀疑的情况下重写网址.这就是我想要的

<img src="/images/logo.jpg" />
Run Code Online (Sandbox Code Playgroud)

应该在内部成为通过htaccess

RewriteRule ^images/(.*)$ /images/{HTTP_HOST}/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)

但我的问题是,

  1. 上面的重定向不断循环
  2. 我可以在没有用户或管理员怀疑的情况下实现img效果吗?

此致

Khuram

Eri*_*lje 6

删除R=301以简单地执行重写而不是重定向:

RewriteRule ^images/(.*)$ /images/{HTTP_HOST}/$1 [L]
Run Code Online (Sandbox Code Playgroud)

它不断循环的原因是301重定向导致为url创建新请求images/www.domain1.com/logo.jpg.该网址也符合您的^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]
Run Code Online (Sandbox Code Playgroud)