.htaccess 将映像从子域重写到根域

vi4fp9gy  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(120)

对于我的一个项目,我需要我的服务器上的图像,这是在/assets文件夹下可用的子域。
例如:https://www.example.com/assets/picture.jpg应该可以通过https://subdomain.example.com/assets/picture.jpg访问
我已经将此添加到.htaccess中,但它似乎不起作用。

RewriteCond %{HTTP_HOST} ^!www.example.com$ [NC]
RewriteCond %{THE_REQUEST} /assets/([^\s]+) [NC]
RewriteRule ^ https://www.example.com/assets/%1 [NC,R=301,L]

这也没用

RewriteCond %{HTTP_HOST} ^!www\.example\.com[NC]
RewriteRule ^/assets/(.*)$ https://www.example.com/assets/$1 [L,R]
cgh8pdjw

cgh8pdjw1#

如果你的域和子域共享同一个public_html,你什么都不用做,就像@arkascha在评论中说的那样,它会默认工作。
我假设您的example.com和subdomain.example.com没有共享相同的public_html。在这种情况下,您的子域.example.com中的.htaccess将与example.com中的.htaccess不同。您必须在子域根目录中的.htacess中添加以下规则:

# .htaccess from the subdomain.example.com root

RewriteEngine On
RewriteRule ^assets/(.*)$ https://www.example.com/assets/$1 [R=301,L,NC]

这会将以assets开头的所有请求重定向到主域中的assets。
第二个解决方案是创建一个从子域assets文件夹到域assets文件夹的符号链接,但不使用.htaccess

ln -sf /public_html/assets /public_html/subdomain/assets

在Windows上,它被称为接合链接(也称为软链接)。

相关问题