如何在htaccess中获取子域和域

时间:2017-04-08 15:56:00

标签: apache .htaccess subdomain

例如,我有网址subdomain.example.com

如何从.htaccess中的网址获取子域

我需要做类似的事情:

RewriteRule (.*) example.com/subdomain/index.php

我想出了子域名,但仍然没有运气。

RewriteCond %{HTTP_HOST} ^(^.*)\.example.com
RewriteRule (.*) example.com/%1/index.php

1 个答案:

答案 0 :(得分:1)

RewriteCond %{HTTP_HOST} ^(^.*)\.example.com
RewriteRule (.*) example.com/%1/index.php

同样的原则也适用于域名(尽管您在此处使用的 CondPattern 似乎无效?)。看起来您需要域+ TLD(基本上,子域之后的所有内容),所以尝试类似:

RewriteCond %{HTTP_HOST} ^(.+?)\.(.+?)\.?$
RewriteRule ![^/]+/[^/]+/index\.php$ %2/%1/index.php [L]

CondPattern (.+?)部分抓取子域(?使其非贪婪)。 (.+?)部分抓取域( host 的剩余部分),同样这是非贪婪的,以避免匹配完全限定域上的可选尾随点(例如{{1}。 })。

subdomain.example.com. 模式 RewriteRule仅在网址不是![^/]+/[^/]+/index\.php$格式时重写,才能阻止重写循环(500错误)。