搜尋

首頁  >  問答  >  主體

thinkphp - nginx設定rewrite時,出現$1等字就爆500錯誤

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

這兩行程式碼,上一行可以正常使用,後面那行一使用就報錯,為什麼? ?是不是有什麼設定要開啟,看了文件也沒找到呀。 。 。

PHPzPHPz2757 天前580

全部回覆(3)我來回復

  • 曾经蜡笔没有小新

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

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

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

    • 小括號()之间匹配的内容,可以在后面通过来引用,表示的是前面第二个()裡的內容。

    也就是當一個請求連結為 /test,就会被重写为/index.php/test并重定向到/index.php/test,所以请确保有这样的资源地址 /index.php/test

    回覆
    0
  • 伊谢尔伦

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

    nginx -t測試下配置是否正確
    500錯誤,看ErrorLog一般都有告訴你原因

    回覆
    0
  • 巴扎黑

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

    把那個正規去掉試試

    回覆
    0
  • 取消回覆