好久不见了!
嗨伙计们,
所以我想实现以下目标:
www.domain.com
domain.com -> 301 -> www.domain.com
account-name.domain.com -> mask and ask server for -> domain.com/account/acount-name
account-name.domain.com/page -> mask and ask server for -> domain.com/account/account-name/page
etc..
到目前为止,我已经在我的htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain'.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^www
RewriteCond %{HTTP_HOST} ^([^'.]+)'.([^'.]+)'.([^'.]+)$
RewriteRule ^(.*)$ account/%1$1 [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
然而,我一直收到这种403消息,它看起来像一个循环!
您没有访问权限/index . php/账户/testindex.php/账户/testindex.php/账户/testindex.php/账户/testindex.php/账户/测试
也许我错过了一些明显的东西,因为我已经在这个工作了一段时间,并放弃了上次我尝试。这可能吗?
一旦我得到这个排序,我计划允许用户设置CNAMES
并指向我们的domain.com,我希望能够将非domain.com请求重写为类似于上述结构的东西,如果不相同,因为我们可以使用regex测试域格式,然后从DB加载帐户。所以任何关于这方面的建议都是额外的:)
目前在Apache和Ubuntu 14服务器上使用Codeigniter。
感谢您的指导!
stefan
尝试更改
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
L
确保此重写是此请求的最后一个处理规则。否则Apache也会应用你的其他重写规则,导致如下:
/index . php/账户/testindex.php/账户/testindex.php/账户/testindex.php/账户/testindex.php/账户/测试