我有一个域名(比如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
它不起作用
答案 0 :(得分:0)
与往常一样,如果我在以下(未经测试的)代码中使用的内容不清楚,请参阅the documentation:
RewriteRule ^freesites/([^/]+)/(.*)$ http://$1.example.com/$2 [R,L]
Crawlers -might-抓取这些网址,如果它们是从某个地方链接的,但它们也应该遵循重定向,只保存“好”的网址。