1

我们有一个安装了 nginx 的服务器,我们还在服务器上配置了 PHP As FastCGI。除重写规则外,一切正常。我们的要求是屏蔽 URL

例如:- 如果有人在我们的网站上搜索,则出现的 URL 将类似于http://example.com/search.php?searchword= $1 ($1=searched word) 。我们需要将客户的 URL 显示为http://example.com/ $1.html。

我们将重写规则设置为 rewrite ^/(([a-zA-Z_0-9]|-)+/?)$ /search.php?searchword=$1 break;

该 URL 正在被重定向,但是我们每次都会收到一个未找到文件的错误。我们如何像在 Apache 中那样屏蔽 URL。任何帮助将不胜感激

我们使用的等效 Apache htaccess 规则如下

RewriteCond %{REQUEST_URI} !index\.html$ [NC]
RewriteRule ^([a-zA-Z0-9-/]+).html$ search.php?searchword=$1 [L]
RewriteRule ^([a-zA-Z0-9-/]+).html/$ search.php?searchword=$1 [L]

它在 Apache 上运行良好

4

1 回答 1

1

您应该将此重写代码放在位置 / 。我已经在我的服务器上对其进行了测试。

location / {
    rewrite ^/([a-zA-Z0-9/-]+).html/?$ /search.php?searchword=$1 last;
}
于 2012-07-06T09:02:31.630 回答