OpenBSDを使用してhttpリクエストを特定のページにリダイレクトする方法は次のとおりです。たとえば、OpenBGPdを次のようにhttpd
提供します。bgplg
httpd.conf
ext_addr="127.0.0.1"
server "www.example.conf" {
listen on $ext_addr port 80
location "/cgi-bin/*" {
fastcgi
root ""
}
}
www.example.com/cgi-bin/bgplgを正確に入力せずにwww.example.comをwww.example.com/cgi-bin/bgplgにリダイレクトする方法
いくつかのオプションを試しましたが、何も機能しないようです。ありがとう
答え1
単純なリダイレクトを使用するには、block return
特定の/
位置ブロックが必要です。それ以外の場合は無限に繰り返されます。(位置ブロックには/
ワイルドカードがないため、資産を迂回できます。)
server "www.example.conf" {
listen on $ext_addr port 80
location "/cgi-bin/*" {
fastcgi
root ""
}
location "/" {
# 302 (Temporary) while testing
# 301 (Permanent) when you're done & sure
block return 302 "/cgi-bin/bgplg"
}
}
今では一般的に動作する別のトリックがあります。root
これを fastcgi に変数として渡し、DOCUMENT_ROOT
存在する場合に実行します。
副作用は、httpdがSCRIPT_NAME
bgplgに必要なものを設定しないため、機能しないことです。しかし、それに依存しない、またはそれを適切に処理する他のスクリプトもうまく機能します(/
スタンドアロンで処理することも、パターンマッチングに拡張したり、包括的/*
に処理したりすることもできます。)
location "/" {
fastcgi
root "/cgi-bin/somescript"
}