我有子域名(us.example.com)和主域名(example.com)。我想将我的子域url重定向到主域,仅用于特定图像。例如,如果我点击http://us.example.com/images/test.jpg
,那么它应该重定向到http://example.com/images/test.jpg
我正在尝试301重定向,如下所示,但它无法正常工作。
Redirect 301 https://us.example.com/images/test.jpg https://example.com/images/test.jpg
我也尝试了其他规则,但它们都在完整的图像目录上工作,而不是目录下的特定图像。
更新 改变了这样的规则 -
RewriteCond %{HTTP_HOST} ^us\.example\.com$ [NC]
RewriteRule ^/?images/test.jpg$ https://example.com/images/test.jpg [R=301,L]
但没有运气。
答案 0 :(得分:1)
mod_alias
中的Redirect
directive具有以下语法:
Redirect [status] [URL-path] URL
并且,如您所见,它接收/接受URL路径,而不是匹配的整个URI / URL。
对于子域匹配,请使用<if>
指令:
<If "%{HTTP_HOST} == 'us.example.com'">
RedirectPermanent /imges/test.jpg https://example.com/images/test.jpg
</If>
使用 mod_rewrite
可以实现相同目的:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^us\.example\.com$ [NC]
RewriteRule ^/?images/test.jpg$ https://example.com/images/test.jpg [R=301,L]
答案 1 :(得分:0)
试试这个伴侣,
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^us.domain.com$ [NC]
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
</IfModule>
上述.htaccess会发生什么,
如果您访问
us.domain.com/somelink
它将重定向到
domain.com/somelink
编辑:
假设上述内容无法通过符号链接尝试下面的内容
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^us.domain.com [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
更新1:
仅限test.jpg
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^us.domain.com/images/test.jpg [NC]
RewriteRule (.*) http://www.domain.com/images/test.jpg [R=301,L]
</IfModule>