我们有一个安装了nginx的服务器,我们还在服务器上配置了PHP As FastCGI。除重写规则外,一切正常。我们的要求是屏蔽URL
例如: - 如果有人在我们的网站上搜索到的网址将是http://example.com/search.php?searchword= $ 1($ 1 =搜索字词)。我们需要将客户的网址显示为http://example.com/ $ 1.html。
我们将重写规则设置为重写^ /(([a-zA-Z_0-9] | - )+ /?)$ / search.php?searchword=$1 break;
网址正在重定向,但每次都会收到一个找不到文件的错误。我们如何像在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正常运行
答案 0 :(得分:1)
你应该把这个重写代码放到location /。我在我的服务器上测试过它。
location / {
rewrite ^/([a-zA-Z0-9/-]+).html/?$ /search.php?searchword=$1 last;
}