2012-11-08 51 views
1

我刚刚将我的功能codeigniter项目移动到一个新的虚拟主机提供商,现在有挑战从URL中使用标准的.htaccess模式删除index.php -改写。这里是正在罚款的.htaccess:移动codeigniter项目到一个新的托管服务提供商 - .htaccess和index.php

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

我发现this讨论,但我没有root权限的Apache服务器,使建议的配置更改。

使用上面提供的.htaccess文件,

任何建议表示赞赏。

+0

由于明显的问题是unprecise请编辑并真正说明你真正想要的东西:什么URL格式应该通过浏览器是可用的?服务器端应用程序使用什么内部URL结构?不要期望我们能够_guess_你想要什么... – arkascha

回答

0

如果你真的必须同时接受这两种形式的URL,那么你需要两个RewriteRules。一旦接受变体,然后'index.php'部分和一个没有。

事情是这样的:

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^index\.php/(.*)$ index.php/$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
+0

感谢您的建议,但是我不需要/想要接受URL中的index.php,所以我真的不需要第一个RewriteRule。 – Gunnar

+0

然后我完全不理解你的问题,对不起。 – arkascha

0

你的问题不是很清楚,但像这样的mod_rewrite规则的共同问题是,有些服务器需要请求作为查询传递。即你需要改变你的最后一行:

RewriteRule ^(.*)$ index.php?/$1 [L] 
相关问题