我需要一些关于htaccess子域的帮助才能指向文件夹中的特定文件。
父文件夹中应包含单独的php文件,以正确路径正确的应用程序。听起来很简单。
用户输入的网址不应该更改/重定向,而只应该更改/重定向 “链接”到背景中的正确文件
用户输入userbase.company.com
时应指向
http://company.com/parent/userbase.php
同样,当用户输入userbase2.company.com
时,它应指向
http://company.com/parent/userbase2.php
但不应该进行重定向。网址链接应保留在
http://userbase2.company.com
文件夹将是相同的,但不是文件。有可能吗?
目前我有这个htaccess代码:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^userbase.company.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.userbase.company.com$
RewriteRule ^(.*)$ \./parent/userbase.php/$1 [L]
我必须把它放在/public_folder/
对吗?不在/public_folder/userbase
?
答案 0 :(得分:3)
这条规则可以胜任:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/parent/
RewriteCond %{HTTP_HOST} !=domain.com
RewriteCond %{HTTP_HOST} !=www.domain.com
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com$
RewriteRule (.*) /parent/%1.php%{REQUEST_URI} [L]
网址在浏览器中保持不变(表示重写 - 内部重定向)。
它仅适用于something.domain.com
(不是domain.com
或www.domain.com
)。
它会将此请求http://user1.company.com/hello/pink/kitten.php
重写为/parent/user1.php/hello/pink/kitten.php
如果子域很复杂(例如www.something.domain.com
),那么它也会在重写中反映出来:例如: http://www.something.company.com/hello/pink/kitten.php
将被重写为/parent/www.something.php/hello/pink/kitten.php
。如果这种行为不受欢迎(我不知道您对100%的要求),那么您需要在规则中再添加一个条件。
主页请求(例如http://user1.company.com/
)将以这种方式重写:/parent/user1.php/
<强> P.S。强> 规则在发布之前进行了测试 - 工作正常,但如果需要使用CodeIgniter应用程序,则必须检查并调整它(抱歉,我不熟悉该框架)。
在任何情况下,此规则都应 以上您的CodeIgniter重写规则(如果有的话)。