suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Helfen Sie mit, .htaccess-Regeln in Nginx-Regeln umzuwandeln

Diese Regel basiert auf den Wiederholungsregeln des Blue Dolphin Shopping Guide-Programms.

Ich möchte die folgenden .htaccess-Regeln in Nginx-Regeln umwandeln, bitte helfen Sie...

<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L]
</IfModule>
PHPzPHPz2755 Tage vor901

Antworte allen(3)Ich werde antworten

  • 怪我咯

    怪我咯2017-05-16 17:30:02

    更准确的提法是:如何把Apache的rewrite规则转换成nginx的。——.htaccess只是手段不必多提,但涉及的模块是rewrite才必须强调,因为如果是别的模块可能nginx会无对应功能。

    两种思路:

    1. 转换器http://www.anilcetin.com/convert-apache-htaccess-to-nginx/
    2. 这个重写规则非常像WordPress。你可以查“wordpress nginx rewrite”,并学习修改成你适用的。

    Antwort
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 17:30:02

    上面规则的意思如果URI对应的文件或文件夹不存在就进行rewrite。apache的%{REQUEST_FILENAME}在nginx与之对应的是$uri,所以你上面的规则可以用如下的try_files 配置

    try_files    $uri $uri/  /index.php/$uri&$args;
    

    try_files的作用是按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。

    $args 表示url中的参数。

    Antwort
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 17:30:02

    if (!-f $request_filename){
        set $rule_0 1$rule_0;
    }
    if (!-d $request_filename){
        set $rule_0 2$rule_0;
    }
    if ($rule_0 = "21"){
        rewrite ^/(.*)$ /index.php/$1 last;
    }
    

    Apache重写规则转换为Nginx
    http://www.51ask.org/apache2n...

    Antwort
    0
  • StornierenAntwort