我正在尝试将所有HTML文件重写为nginx中的PHP文件。所以我在我的nginx conf文件中输入了以下规则。
location ~ \.html$
{ rewrite (.*).html$ /$1.php;
}
但它不起作用,所以我尝试将重写规则放在两个位置,但即使这样也行不通。
location / {
rewrite (.*).html$ /$1.php;
rewrite admin/$ /admin/index.php;
rewrite ([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ /productlist.php?cat=$1&subcat=$2;
rewrite ([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ /productlist.php?cat=$1&subcat=$2&brand=$3;
rewrite ([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([0-9]+)/buy/$ /productdetails.php?cat=$1&subcat=$2&product=$3&id=$4;
rewrite ([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([0-9]+)/buy$ /productdetails.php?cat=$1&subcat=$2&product=$3&id=$4;
rewrite admin/internalattacment/(.*) /download.php/$1;
rewrite admin/report_bug/(.*) /download.php/$1;
}
但是当我把这样的重写规则放到nginx
时location ~ .*.()$ {
rewrite (.*).html$ /$1.php;
}
有人可以告诉我为什么不会从前两个位置选择重写规则吗?
答案 0 :(得分:0)
我认为您的错误位于该位置。
location ~ \.html$
仅匹配“.html”,而不是“anything.html” 试试
location ~ /(.*).html$