我想我的域名是“www.domain.com” 我有一个文件系统
public_html
|----ds
|--application
|--cache
|--controller
...
|--css
|--image
|--system
|--index.php
|----zs
|----fd
public_html是根目录。
我在.htacess中编码,条件为::
1)ds目录是子域名。当URL是ds.domain.com时。它在www.domain.com/ds/index.php /
中映射文件路径2)我想将网址www.domain.com/ds/index.php/translate/paintext(示例完整网址)清理为ds.domain.com/translate/paintext(clean url)
如何在.htacess中编码?
/ ************* ******** /
我将.htacess放在/ ds文件夹中并尝试编码:
#subdomain to subdirectory
RewriteCond %{HTTP_HOST} ^www.domain.com/ds/
RewriteRule ^(.*)$ http://ds.domain.com/$1 [L,R=301]
#clean URL from codeigniter
RewriteCond $1 !^(index\.php|lib|css|image)
RewriteRule ^(.*)$ index.php/$1 [L]
有什么问题?
答案 0 :(得分:0)
至少有一件事是你的HTTP_HOST
。该变量是主机名,主机名中不包含URL路径信息。因此www.domain.com/ds/
永远不会作为主机名存在。将其更改为:
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^ds/(.*)$ http://ds.domain.com/$1 [L,R=301]
第二个问题看起来不错。但是,如果您想将/index.php
的请求重定向到一个没有" index.php"的新网址。部分,你需要一个新的规则来做到这一点:
RewriteCond %{THE_REQUEST} \ /+index\.php/
RewriteRule ^index.php/(.*)$ /$1 [L,R=301]