每次用户点击;
http://domain.com/abc/12/16/abc-def-ghi
我需要执行
domain.com/abc.php?a=12&b=16&c=abc-def-ghi
现在我的正则expression式是正确的:
^\/abc\/(\d+)\/(\d+)\/(\w+\S+)$
http://rubular.com/regexes/11063
和规则是
if (!-e $request_filename) { rewrite ^\/abc\/(\d+)\/(\d+)\/(\w+\S+)$ abc.php?a=$1&b=$2&c=$3 last; }
但它是给“没有input文件指定”。 我找不到问题是什么?
“没有input文件指定”错误来自php处理程序。 这意味着重写规则工作正常,但其他一些行不是前缀适当的base_dir。
尝试这个…
更换
rewrite ^\/abc\/(\d+)\/(\d+)\/(\w+\S+)$ abc.php?a=$1&b=$2&c=$3 last;
同
rewrite ^\/abc\/(\d+)\/(\d+)\/(\w+\S+)$ /abc.php?a=$1&b=$2&c=$3 last;
请注意/ (slash)在abc.php上面的行。
还有问题可以…
location ~ \.php$ {}块中。 我希望你有一个确定在你的完整configuration:-) root /var/www/exmaple.com; 在你的configuration。 如果location \ {..}块的location \ {..} ,则可能需要将其复制到location ~ \.php$ {}或者移到location \ {..}但位于server {..}块之内。 如果你可以在这里粘贴你的nginxconfiguration文件,那么debugging会更容易。 🙂