htaccess将停放的域子文件夹附加到URL

时间:2015-03-13 09:20:12

标签: .htaccess mod-rewrite

我为客户创建了一个网站,并且正常情况下我们的网站包含一个htaccess文件,用于将任何非www流量重定向到www。子域。

客户端现在添加了一个托管域作为他们想要托管另一个站点的子文件夹。如果您转到www.parkeddomain.com,那么它可以正常工作,在PARKEDDOMAIN.COM子文件夹中显示该网站。但是,如果您转到parkeddomain.com,则htaccess会将您重定向到www.parkeddomain.com/PARKEDDOMAIN.COM。如何阻止它将子文件夹附加到URL?

这是htaccess文件的内容:

Options +FollowSymLinks
RewriteEngine on

# Redirect old URLs to new URLs
Redirect /jewelry-the-experience /custom-made-jewelry
Redirect /jewelry-the-process /custom-made-jewelry

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (.*)$ /handle-url.php [L] 

1 个答案:

答案 0 :(得分:1)

在现有规则之前添加以下规则。

RewriteCond %{HTTP_HOST} ^parkeddomain\. [NC]
RewriteRule ^(?:parkeddomain\.com/?)?(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,NC,L]

RewriteCond %{HTTP_HOST} !^(www|parkeddomain)\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

我们首先捕获no-www停放域并重定向而不使用其子目录。这可确保现有规则始终仅重定向主域。