htaccess重定向到子域

时间:2013-11-02 21:03:32

标签: .htaccess redirect robots.txt

我有一个域名(比如example.com)。根目录中有一个名为freesites的文件夹。对于freesites的每个子文件夹(比如sf),我添加了一个子域(sf.example.com)。在每个子文件夹中都有一个以index.php文件开头的单独Web应用程序。

root (example.com)
|-- index.php
|-- .htaccess
|-- ...
|-- freesites
  |-- sf1 (sf1.example.com)
    |-- index.php
    |-- ...
  |-- sf2 (sf2.example.com)
    |-- index.php
    |-- ...
  |-- sf3 (sf3.example.com)
    |-- index.php
    |-- ...

问题:我不希望访问者以example.com/freesites/sf1/blabla的身份发送请求。它不起作用。我希望将这些请求重定向到sf1.example.com/blabla。此外,我喜欢禁止抓取工具执行此类请求 我在.htaccess和robots.txt中需要什么代码?
注意:我现在将www重定向到.htaccess中的非www。

Edit1 .htaccess内容

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
RewriteBase /
RewriteRule ^freesites/([^/]+)/(.*)$ http://$1.example.com/$2 [R,L]
RewriteCond %{HTTP_HOST} ^www.example.com
RewriteRule (.*) http://example.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

它不起作用

1 个答案:

答案 0 :(得分:0)

与往常一样,如果我在以下(未经测试的)代码中使用的内容不清楚,请参阅the documentation

RewriteRule ^freesites/([^/]+)/(.*)$ http://$1.example.com/$2 [R,L]

Crawlers -might-抓取这些网址,如果它们是从某个地方链接的,但它们也应该遵循重定向,只保存“好”的网址。