.htaccess 屏蔽重定向到根目录上的另一个文件夹

.htaccess 屏蔽重定向到根目录上的另一个文件夹,.htaccess,mod-rewrite,redirect,virtualhost,.htaccess,Mod Rewrite,Redirect,Virtualhost,我有域名www.domain.com,在www.domain.com/data/photos/*.*中有图像。我想要的是,通过虚拟主机和屏蔽访问这些图像-即。我不想更改url,我想将虚拟子域url作为此urlhttp://img.domain.com/** 我的主要网站是/data/web/domain.com/web/*.* 子域可以在/data/web/domain.com/sub/*.*中创建 我试过这个,但不起作用: DocumentRoot /data/web/domain.com/s

我有域名www.domain.com,在www.domain.com/data/photos/*.*中有图像。我想要的是,通过虚拟主机和屏蔽访问这些图像-即。我不想更改url,我想将虚拟子域url作为此urlhttp://img.domain.com/**

我的主要网站是/data/web/domain.com/web/*.*

子域可以在/data/web/domain.com/sub/*.*中创建

我试过这个,但不起作用:

DocumentRoot /data/web/domain.com/sub
ServerName domain.com
ServerAlias img.domain.com
Alias /img /data/web/domain.com/web/data/photos
我也尝试过5种解决方案,但都不适合我。 问题在哪里

编辑:

这是我当前的虚拟主机设置:

DocumentRoot /data/web/domain.com/web
ServerName www.domain.com
ServerAlias domain.com
ServerAlias img.domain.com
我尝试将此添加到.htaccess文件:

它正在工作,但当我输入f.e时,它正在更改urlhttp://img.domain.com/image.jpg 它在浏览器中更改为http://www.domain.com/data/photos/image.jpg.

简言之;我想当你打字的时候http://img.domain.com/image.jpg 显示位于/data/web/domain.com/web/data/photos/image.jpg中的文件内容

如何防止URL的更改?

您可以使用

RewriteRule "/(.*)\.(jpg|gif|png)$" "http://img.domain.com/$1.$2" [P]
而不是:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} ^img.domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/data/photos/$1 [R,L]

注意:必须启用mod_代理才能使用此标志

编辑

我找到了解决办法! 试试这个:

RewriteCond %{ENV:REDIRECT_FINISH} !^$
RewriteRule ^ - [L]
RewriteCond %{HTTP_HOST} ^img.domain.com$ [NC]
RewriteRule ^(.*)$ /data/photos/$1 [L,E=FINISH:1]

前两行有助于防止无限循环。

这将产生真正不同的效果。另外,我不想使用mod_代理,我在同一个域上。我想当你打字的时候http://img.domain.com/image.jpg 为了显示位于/data/web/domain.com/web/data/photos/image.jpg中的文件内容,我已经更新了我的帖子,希望这对您有所帮助。对不起,我的第一个没用的回答。当然我试着删除R,但它没有帮助。那就什么也不行了,我找到了!请查看我的最新帖子。希望这次我能帮助你。我改变了它,它也没有工作,E=完成:1。
RewriteCond %{ENV:REDIRECT_FINISH} !^$
RewriteRule ^ - [L]
RewriteCond %{HTTP_HOST} ^img.domain.com$ [NC]
RewriteRule ^(.*)$ /data/photos/$1 [L,E=FINISH:1]