【发布时间】:2015-03-24 06:14:08
【问题描述】:
我正在尝试将任何或一组子域重定向到 CI 安装的“控制器”文件夹内的文件夹。我已经尝试过在 SO 上找到的一堆东西,但没有一个适用于我的项目或具有我需要的相同规格。由于我在 .htaccess 方面有点菜鸟,所以我想我可能会在这里问更有资格的人。以下是规格:
- 使用this awesome .htaccess file 作为基础
- 需要将至少这三个子域 (www|admin|api) 重定向到 /application/controllers/(www|admin|api) 等效文件夹
- 不丢失 REQUEST_URI(只是说)
- 并且没有实际更改地址栏中的 URL
示例:http://api.domain.com/some/uri/segments 应在内部重定向到 CI_installation_folder/application/controllers/api/some /uri/segments
我已经尝试过类似的方法(和变体):
RewriteCond %{HTTP_HOST} ^(www|admin|api) [NC]
RewriteRule ^(.*)$ /%1/$1 [L,R=301]
或将RewriteRule 替换为其他 2 行,如下所示:
RewriteCond %{ENV:REDIRECTED} !true
RewriteRule ^(.*)$ [L,R=301,E=REDIRECTED:true]
为了防止循环,但我能得到的只是循环重定向(第一种情况),甚至在某些变体上出现 500 服务器错误:(
添加这个
RewriteCond %{REQUEST_URI} !^/(www|admin|api) [NC]
也不会工作,因为我没有更改地址栏中的 URL。我的 [P] 标志也没有任何成功。
有人可以帮忙吗?谢谢!
【问题讨论】:
标签: php apache .htaccess codeigniter mod-rewrite