【发布时间】:2014-01-08 19:58:46
【问题描述】:
我正在尝试将所有 HTML 文件重写为 nginx 中的 PHP 文件。所以我在我的 nginx conf 文件中输入了以下规则。
location ~ \.html$
{ rewrite (.*).html$ /$1.php;
}
但它不起作用,所以我尝试将重写规则放在belwo位置,但即使这样也不起作用。
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;
}
有人可以告诉我为什么没有从前 2 个位置获取重写规则吗?
【问题讨论】:
标签: php .htaccess http nginx rewrite