#rewrite .* /index.php last;
rewrite ^/(.*)$ /index.php/$1 last;
这两行代码,上一行可以正常使用,后面那行一使用就报错,为什么??是不是有什么配置要开启,看了文档也没找到呀。。。
用nginx -t
测试下配置是否正确
500错误,看ErrorLog一般都有告诉你原因
把那个正则去掉试试
rewrite ^/(.*)$ /index.php/$1 last;
中 $1
代表的是 ^/(.*)$
正则捕获的内容,也就是(.*)
捕获到的内容。
^/(.*)$
中^/
表示已/
开头,.
表示匹配除换行符以外的任意字符,*
表示重复0次或更多次,$
表示匹配字符串的结束,()
表示捕获(匹配)内容。小括号
()
之间匹配的内容,可以在后面通过$1
来引用,$2
表示的是前面第二个()
里的内容。
也就是当一个请求链接为 /test
,就会被重写为/index.php/test
并重定向到/index.php/test
,所以请确保有这样的资源地址 /index.php/test