我重新配置了通配符子域*.example.com
,现在我可以访问anysubdomain.example.com
,而且总是可以执行相同的codeingiter安装。
当尝试请求不同的子域时,我试图加载不同的内容,但是我需要始终调用相同的方法和类,但是参数需要根据子域名进行更改。
示例:
当我点击john.example.com
时,我希望能够看到与访问example.com/users/profile/john
时相同的内容。
当我点击mary.example.com
时,我希望能够看到与访问example.com/users/profile/mary
时相同的内容。
更新:
我正在使用此代码,但正在重定向而不是显示将URL保留为子域的内容:
RewriteCond %{HTTP_HOST} ^([^\.]+)\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/users/profile/%1/$1 [QSA,L]
更新2:
现在我将.htaccess文件更改为
RewriteCond $1 !^(index\.php|resources|robots\.txt) [NC]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.example\.com$ [NC]
RewriteRule ^(.*)$ index.php?/users/profile/%1/$1 [L,QSA]
当我访问username.example.com
或访问example.com/users/profile/username
(在两种情况下)并且在var_export
上使用$_GET
时,它显示:
array (
'/users/profile/username/' => '',
)
但是由于某些未知的原因,当我访问example.com/users/profile/username
时,我会看到用户个人资料(右),但是当我访问username.example.com
时,我会看到索引页(我原本希望看到用户个人资料也是如此)。
注意:我的问题与This question不同,因为这是关于重定向到具有子域名称的控制器(可以手动管理)因为控制器是有限的),我的问题是关于显示特定控制器和方法的内容而无需重定向(重写规则),其参数等于子域(并且参数无法手动管理,因为没有它们的值限制。