我正在尝试基于CodeIgniter设置网站。
对于开发我想要domain dev.XXX.com
我更改了我的结构,因此我有一个no_www
和一个public_www
文件夹。
两者都在dev.XXX.com
所以我的想法是重写url的表单
dev.XXX.com/index.php/test
到
dev.XXX.com/public_www/index.php/test
所以我只想为所有请求添加public_www
在我的htaccess文件中,我有:
RewriteRule ^(.*)$ /public_www/$1 [L]
但我总是得到500 - 内部服务器错误
答案 0 :(得分:5)
尝试将以下内容添加到您网站的根目录(中的.htaccess
)public_www
文件中。
RewriteEngine on
RewriteBase /
#if its on dev.xxx.com
RewriteCond %{HTTP_HOST} ^dev\.XXX\.com$ [NC]
#if its not already public_www/ rewrite to public_www/
RewriteRule ^(?!public_www/)(.*)$ /public_www/$1 [L,NC]
您的规则将导致无限重写和随后的500错误。上面的那个应该可以防止这种情况。
修改强>
你能解释为什么我的版本会导致无限循环
我可能对无限循环不正确,但下面是将要发生的事情
^(.*)$
模式将匹配任何输入/public_www/$1
^(.*)$
模式将匹配重写的输入/public_www/$1
/public_www/public_www/$1
您的RewriteRule模式^(.*)$
将匹配所有输入并将重写为。然后将再次运行.htaccess规则