Heim  >  Fragen und Antworten  >  Hauptteil

thinkphp – Beim Konfigurieren von Rewrite in Nginx tritt ein 500-Fehler auf, wenn Wörter wie „$1“ erscheinen.

#rewrite .* /index.php last;
rewrite ^/(.*)$ /index.php/ last;

Für diese beiden Codezeilen kann die vorherige Zeile normal verwendet werden, aber die zweite Zeile meldet einen Fehler, sobald sie verwendet wird. ? Gibt es eine Konfiguration, die aktiviert werden muss? Ich habe mir die Dokumentation angesehen und konnte sie nicht finden. . .

PHPzPHPz2713 Tage vor554

Antworte allen(3)Ich werde antworten

  • 曾经蜡笔没有小新

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

    rewrite ^/(.*)$ /index.php/$1 last;$1 代表的是 ^/(.*)$ 正则捕获的内容,也就是(.*) 捕获到的内容。

    • ^/(.*)$^/ 表示已 / 开头, . 表示匹配除换行符以外的任意字符,* 表示重复0次或更多次,$ 表示匹配字符串的结束,() 表示捕获(匹配)内容。

    • 小括号()之间匹配的内容,可以在后面通过$1来引用,$2表示的是前面第二个()里的内容。

    也就是当一个请求链接为 /test,就会被重写为/index.php/test并重定向到/index.php/test,所以请确保有这样的资源地址 /index.php/test

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 17:22:17

    nginx -t测试下配置是否正确
    500错误,看ErrorLog一般都有告诉你原因

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-05-16 17:22:17

    把那个正则去掉试试

    Antwort
    0
  • StornierenAntwort