Heim  >  Fragen und Antworten  >  Hauptteil

nginx – So verwenden Sie Re-Rules, um .php aus der URL zu entfernen

So verwenden Sie Apache und Nginx, um Regeln neu zu schreiben, wenn ThinkPHP den REWRITE-Modus aktiviert,
Entfernen Sie die .php in http://www.example.com/api.php/user/info/1880233
Wird zu http://www.example.com/api/user/info/1880233

Suche nach Beispielen für Rewrite-Regeln für Apache und Nginx.

PHPzPHPz2713 Tage vor918

Antworte allen(1)Ich werde antworten

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 17:05:43

    不好意思,之前没看清楚问题

    Nginx:

    location ~ .php {
      fastcgi_pass   127.0.0.1:9000;  #根据实际情况修改
      fastcgi_index  index.php;
      include        fastcgi_params;
    
      #这一段是让 Nginx 支持 PATH_INFO
      set $real_script_name $fastcgi_script_name;
      if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
          set $real_script_name $1;
          set $path_info $2;
      }
      fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
      fastcgi_param SCRIPT_NAME $real_script_name;
      fastcgi_param PATH_INFO $path_info;
    }
    
    location / {
      if (!-e $request_filename) {
        rewrite ^/api/(.*)$ /api.php/$1 last;
        break;
      }
    }
    

    Apache:
    还是参照这个链接里的介绍:http://doc.thinkphp.cn/manual/url_rewrite.html
    但把代码改成如下这样:

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^/api/(.*)$ api.php/$1 [QSA,PT,L]
    </IfModule>
    

    并把.htaccess文件放到 api.php 的文件夹里

    Antwort
    0
  • StornierenAntwort