私は、次のURLがありますnginxの書き換えルール
mywebsite.com/template/product.html
を、私は
mywebsite.com/としてそれを書き換えたいです製品
location/{
alias /var/www/web/;
rewrite ^/(mywebsite.com/template/.*)\.html$ /$1 last;
}
私は、次のURLがありますnginxの書き換えルール
mywebsite.com/template/product.html
を、私は
mywebsite.com/としてそれを書き換えたいです製品
location/{
alias /var/www/web/;
rewrite ^/(mywebsite.com/template/.*)\.html$ /$1 last;
}
ドメインを汎用バリアブルとして扱うかどうかは不明です。
とにかく、サーバー構成をmywebsite.com
に設定した場合、この構成はケースに合っているはずです。
server {
error_log logs/mywebsite.com.log debug;
server_name mywebsite.com;
root /var/www/web/mywebsite.com;
# this directive handle the redirects from old name.html to new format
location /template/ {
rewrite ^/template/([^.]+)\.html$ /$1 redirect;
}
# given new new url format this directive match the name and
# read the file
location ~* ^/([^.]+)$ {
try_files /template/$1.html /template/notfound.html;
}
}
あなたが書き込んだ正規表現が製品名と一致しませんでした。今すぐグループはあなたの要件に合っているはずです。私はあなたがブラウザまたはボットを新しいURLにリダイレクトしたいと思うので、書き換えフラグlast
をredirect
に変更しました。
動作していますが、その表示が見つかりません404見つかりません。ここの問題は何ですか?いいえ、大規模なホスティングではありません。私は '' http:// mywebsite.com/template/product.html'のように '' http:// mywebsite.com/product/''に同じページを表示したいです。 –
問題は、リクエストを '/ template/name.html'から'/name'にリダイレクトする方法です。新しいURL形式でhtmlをどのように読むかについては疑問がありませんでした。私はあなたが新しい問題の解決が期待されていると仮定したと思います。とにかく、私は自分の答えを更新しました。 – freedev
httpリクエストに関して、ご質問のユースケースが見つかりました。 'http:// mywebsite.com/template/product.html'のすべてのリクエストを' http:// mywebsite.com/product'にリダイレクト(302または301)する必要がありますか?そして、なぜ、あなたは質問タグにApacheを追加したのですか? – freedev
私は、ほとんどのApacheユーザーがnginxについて知っていると思っていました。はい、すべてのリクエストを「http:// mywebsite.com/product /」にリダイレクトします。 –
ドメインを汎用変数として扱いますか?これは一種の大規模なホスティングですか? – freedev