将codeigniter项目转移到一个新的托管提供商-.htaccess和index.php
我刚刚将我的功能性codeigniter项目转移到一个新的web托管提供商,现在面临使用标准的.htaccess mod重写从URL中删除index.php的挑战。以下是运行正常的.htaccess:将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] 我找到了讨论,但我
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结构?别指望我们猜到你想要什么。。。