Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将codeigniter项目转移到一个新的托管提供商-.htaccess和index.php_.htaccess_Codeigniter_Mod Rewrite - Fatal编程技术网

将codeigniter项目转移到一个新的托管提供商-.htaccess和index.php

将codeigniter项目转移到一个新的托管提供商-.htaccess和index.php,.htaccess,codeigniter,mod-rewrite,.htaccess,Codeigniter,Mod Rewrite,我刚刚将我的功能性codeigniter项目转移到一个新的web托管提供商,现在面临使用标准的.htaccess mod重写从URL中删除index.php的挑战。以下是运行正常的.htaccess: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] 我找到了讨论,但我

我刚刚将我的功能性codeigniter项目转移到一个新的web托管提供商,现在面临使用标准的.htaccess mod重写从URL中删除index.php的挑战。以下是运行正常的.htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
我找到了讨论,但我没有对apache服务器的root访问权来进行建议的配置更改

使用上面提供的.htaccess文件

  • 工作正常:
  • 不起作用:

感谢您的建议。

如果您确实必须同样接受这两种形式的URL,那么您需要两条重写规则。一旦接受了带有'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]

您的问题不是很清楚,但是像这样的mod_重写规则的一个常见问题是,一些服务器需要将请求作为查询传递。即,您需要将最后一行更改为:

RewriteRule ^(.*)$ index.php?/$1 [L]

谢谢你的建议,但是我不需要/不想接受URL中的index.php,所以我真的不需要第一条重写规则。那么我根本不理解你的问题,对不起。因为你的问题显然不精确,请编辑它并解释你真正想要的:浏览器应该使用什么URL格式?服务器端应用程序使用什么内部URL结构?别指望我们猜到你想要什么。。。