htaccess重定向到子域并保留字符串

时间:2012-06-04 15:13:37

标签: linux apache .htaccess redirect

发现了一些类似的问题,但要么我无法从答案中找出答案,要么就不能直接满足我的需求。

我想要实现的目标是:

我最近将部分网站迁移到了其他服务器上的子域名,因此过去的情况:http://mysite.com/clients现在位于http://clients.mysite.com

使用:RedirectMatch 301 https?://mysite.com/clients/^(.*)$ https://clients.mysite.com/$1可以很好地简单地将人们http://mysite.com/clients重定向到新的子域,但我希望能够在/ clients /

之后保留字符串

所以如果有人击中,例如http://mysite.com/clients/could_be_a_number_of_things.php重定向到http://clients.mysite.com/could_be_a_number_of_things.php

有人可以提供建议吗?

按要求完整.htaccess:

    # -FrontPage-

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*

<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
#AuthName mysite.com
#AuthUserFile /home/inhost/public_html/_vti_pvt/service.pwd
#AuthGroupFile /home/inhost/public_html/_vti_pvt/service.grp

# BEGIN WordPress
Options +FollowSymLinks -MultiViews
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTPS}s on(s)|
RewriteCond %{HTTP_HOST} ^(www\.)?mysite\.com$
RewriteRule ^clients/(.*)$ http%1://clients.mysite.com/$1 [L,NC,R=301]
</IfModule>

# END WordPress

1 个答案:

答案 0 :(得分:1)

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess服务器上DOCUMENT_ROOT目录下的mysite.com中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

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