.htaccess将所有内容从子域重写到域

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

我将一个子域重写到我的站点上的一个部分:
指向https://example.com/section.php?url=music

RewriteCond %{HTTP_HOST} ^music.example.com
RewriteRule ^(.*)$ section.php?url=music/$1 [L,NC,QSA]

但是我需要为这个(和其他)子域使用相同的图像,css等。
https://example.com/images/img.jpg应该可以从https://music.example.com/images/img.jpg访问
我试图找到一个解决方案,但我可能没有做正确的搜索。

bqjvbblv

bqjvbblv1#

RewriteCond %{HTTP_HOST} ^music.example.com
RewriteRule ^(.*)$ section.php?url=music/$1 [L,NC,QSA]

此规则 * 在内部重写 *(不是“重定向”)music.example.com/<anything>的请求到section.php?url=music/<anything>。即,所有内容,包括所有图像和CSS等。这比您的描述中所述的要多得多,您只希望根目录“指向”https://example.com/section.php?url=music
如果您只想重写根目录,则将regex ^(.*)$限制为只匹配根目录。
例如:

RewriteCond %{HTTP_HOST} ^music\.example\.com
RewriteRule ^$ section.php?url=music [QSA,L]

注意:不要忘记反斜杠转义正则表达式中的文字点。
现在,除了对子域的根目录的请求(即仅https://music.example.com/)之外,这自然排除了重写其他所有内容。
.htaccess将所有内容从子域重定向到域
如上所述,这是一个内部的“重写”,而不是外部的“重定向”。而且这种从子域到域的重写也不会发生。请求的主机名不会改变,并且假设子域和域顶点都指向文件系统上的同一个位置。

相关问题