3

是否可以使用 .htaccess 重写规则将子子域重定向到子域作为新文件夹的子域?

例如......当我去 2013.archive.example.com 时,我想最终进入 archive.example.com/2013..

已经尝试了一些东西,当前的 .htaccess 是:

RewriteRule On
RewriteCond %{HTTP_HOST} ^(.*)\.archive\.example\.com$
RewriteRule ^(.*)$ archive.example.com/%1/$1 [L]

不幸的是,它不起作用。对此有什么建议吗?

4

3 回答 3

1

改变了它,但目前正在使用:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)\.archive\.example\.com$ [NC]
RewriteRule ^(.*)$ %1/$1 [L]

并且完全按照我的意愿工作:)

于 2013-09-17T07:18:20.580 回答
0

对于外部重定向:(浏览器中的 URL 更改)

您可以在您的DOCUMENT_ROOT/.htaccess

RewriteCond %{HTTP_HOST} ^([^.]+)\.(archive\.example\.com)$ [NC]
RewriteRule ^ http://%2/%1%{REQUEST_URI} [L,R=301]

如果和DOCUMENT_ROOT相同,这将起作用。anything.archive.example.comarchive.example.com

对于内部转发:(浏览器中没有 URL 更改)

您可以在您的DOCUMENT_ROOT/.htaccess

RewriteCond %{HTTP_HOST} ^([^.]+)\.archive\.example\.com$ [NC]
RewriteRule ^ /%1%{REQUEST_URI} [L]
于 2013-09-16T21:26:46.833 回答
0

如果它们共享相同的根,那么您不需要archive.example.com规则目标中的部分:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)\.archive\.example\.com$ [NC]
RewriteRule ^(.*)$ /%1/$1 [L]
于 2013-09-16T21:29:44.120 回答