1

nginx がインストールされているサーバーがあり、サーバー上で PHP を FastCGI として構成しました。書き換えルールを除いて、すべてが正常に機能しています。私たちの要件は、URL をマスクすることです

例:- 誰かが私たちのウェブサイトを検索すると、http://example.com/search.php?searchword= $1 ($1=searched word) のような URL が表示されます。顧客の 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 に答える