我[可能]有一个不寻常的设置:
下面是我如何做到这一点的工作示例
# Domain1.com
RewriteCond %{HTTP_HOST} ^spain\.domain1\.com [NC]
RewriteRule ^(.*)$ /spain/$1 [L]
这一切都很好,但是: 如果用户访问doamin1.com/spain,它们当然会显示该文件夹中的所有文件...
所以,我尝试在domain1.com/spain上添加重定向...但这不起作用...我已经尝试了一切。包括尝试重定向根.htaccess和西班牙/ .htaccess。都没有工作。
我正在尝试以下(不起作用)
# Domain1.com/spain
RewriteCond %{HTTP_HOST} ^domain1\.com/spain/ [NC]
RewriteRule (.*)$ http://www.domain1.com/? [L]
我尝试了以上的变化,但似乎都没有(根本没有)
然而,RedirectMatch确实有效(下图),但也打破了上面的子域(在第一个例子中)。
RedirectMatch ^/spain/$ /
如果我尝试匹配更多并将RedirectMatch添加为(下方),则不会触发匹配......
RedirectMatch ^www\.domain1\.com/spain/$ /
我知道我需要做的事情是可能的(我想和假设),但是我在这里碰壁... 请指教,当然谢谢你!!!
答案 0 :(得分:1)
这是不正确的:
# Domain1.com/spain
RewriteCond %{HTTP_HOST} ^domain1\.com/spain/ [NC]
RewriteRule (.*)$ http://www.domain1.com/? [L]
因为最后一部分(/ spain)永远不是HTTP_HOST的一部分所以它永远不会匹配:)
你想做的是这样的事情
# Domain1.com/spain
RewriteCond %{HTTP_HOST} ^domain1\.com [NC]
RewriteRule ^spain(.*)$ http://www.domain1.com/? [R=302,NC,L]
换句话说,在RewriteRule中移动URL的/ spain部分,它实际上是匹配的,并保持域名在上面的RewriteCond中匹配。