sou*_*ver 0 apache .htaccess codeigniter
我正在尝试基于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]
Run Code Online (Sandbox Code Playgroud)
但我总是得到500 - 内部服务器错误
尝试将以下内容添加到站点.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]
Run Code Online (Sandbox Code Playgroud)
你的规则将导致无限重写和随后的500错误.上面的那个应该防止这种情况.
编辑
你能解释为什么我的版本导致无限循环吗?
我可能对无限循环不正确,但下面是会发生的事情
^(.*)$ 模式将匹配任何输入/public_www/$1^(.*)$ 模式将匹配重写输入 /public_www/$1 /public_www/public_www/$1您的RewriteRule模式^(.*)$将匹配所有输入并将重写为.然后将再次运行.htaccess规则