加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜阳站长网 (https://www.0558zz.com/)- 科技、建站、内容创作、云计算、网络安全!
当前位置: 首页 > 运营中心 > Nginx > 正文

apache-2.2 – 什么是我的htaccess mod_rewrite的nginx equalant?

发布时间:2020-10-19 17:16:45 所属栏目:Nginx 来源:互联网
导读:以前我在我的CodeIgniter网站上使用运行Apache的linode VPS.今天我安装了nginx,我的网站登陆页面即将推出,但是使用htaccess重写URL的其他页面也没有到来.这是我的htaccess,RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUE

以前我在我的CodeIgniter网站上使用运行Apache的linode VPS.今天我安装了nginx,我的网站登陆页面即将推出,但是使用htaccess重写URL的其他页面也没有到来.
这是我的htaccess,

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

我的htaccess的nginx是什么?我的codeigniter配置和应用程序中还需要进行任何更改吗?

对于codeigniter配置中的URI协议,我正在使用,

$config['uri_protocol'] = 'PATH_INFO';

这会用nginx吗?? 最佳答案 由于没有等效的.htaccess文件(即没有目录级配置文件),因此需要更新主配置并重新加载nginx以使任何更改生效.

上面的Apache配置基本上是“如果提供的路径不是现有文件或目录,则重定向到index.php,附加路径”.

在Nginx中,您将使用try_files指令来完成同样的事情:

location / {
        try_files $uri $uri/ @ci_index;
}

location @ci_index{
        rewrite ^(.*) /index.php?$1 last;
}

与Apache不同 – 如果Nginx配置中的语句为best avoided.

在某些设置中,您可以避免使用命名索引并重写,只需使用/index.php作为try_files的第3条路径(并且codeigniter应该从$_SERVER [$config [‘uri_protocol’]]获取路径.

至于PATH_INFO的使用 – 检查你的fastcgi_params文件(你希望它包含在你的php位置块中)并查看:

fastcgi_param  PATH_INFO          $fastcgi_path_info;

您也可以使用$config [‘uri_protocol’] =“REQUEST_URI”

对于您选择的任何选项,请检查print_r($_ SERVER)的输出以验证已设置的服务器变量以及它们已设置的内容(它们应与您在PHP位置块和fastcgi_params文件中指定的任何内容匹配) .

(编辑:阜阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读