例如,我有网址subdomain.example.com
。
如何从.htaccess
中的网址获取子域和域?
我需要做类似的事情:
RewriteRule (.*) example.com/subdomain/index.php
我想出了子域名,但域仍然没有运气。
RewriteCond %{HTTP_HOST} ^(^.*)\.example.com
RewriteRule (.*) example.com/%1/index.php
答案 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错误)。