質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

Q&A

4回答

1088閲覧

URLに出ているポート番号を無くしたい

westbom

総合スコア7

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

0グッド

2クリップ

投稿2024/06/14 10:00

実現したいこと

pythonで作ったシステムのURLがhttp://192.168.0.111:5000でアクセスできるようになっています。
この5000の表示を見えないようにしたいと思ってます。
http://192.168.0.111/testsearchでhttp://192.168.0.111:5000にアクセスできるようにしたいです。

発生している問題・分からないこと

IISのURL書き換えを設定したのですが、
「404 - ファイルまたはディレクトリが見つかりません。」
が表示されてしまってます。

エラーメッセージ

error

1「404 - ファイルまたはディレクトリが見つかりません。」

該当のソースコード

パターンに「testsearch(.*)」 アクションに「http://localhost:5000/」 と記載しています。

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

色々試しても「404 - ファイルまたはディレクトリが見つかりません。」が表示されるのでチガウフォルダにアクセスしていると思います。

設定方法を教えていただけないでしょうか?
よろしくお願いします。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

think49

2024/06/14 10:04

80番ポートに変更することはできないのでしょうか。
westbom

2024/06/14 10:28

変更できないです。
westbom

2024/06/14 13:56

このサイトを見てやってるんですけど、うまくいかなくて。
KOZ6.0

2024/06/14 17:57 編集

ポート 80 のサイトとポート 5000 のサイトがあると思いますが、設定するのは 80 のほうです。 5000 側を設定していないでしょうか?
think49

2024/06/15 01:27 編集

@westbom さん 5000番ポートを使用していながら、80番ポートを使用しているように詐称する事は出来ません。
think49

2024/06/15 01:29 編集

@westbom さん 仮にURL Rewriteで実装可能だとしても、ブラウザから見て http://localhost:80/ にリクエストし、サーバ内部で http://localhost:5000/ にリダイレクトしているだけです。 80番ポートと5000番ポートの両方を使います。 80番ポートは使えないという事ですから、この方法は使えません。 ブラウザのアドレスバーでポート番号を非表示にするには、下記2択になると思います。 ・httpプロトコルで80番ポートで待ち受ける ・httpsプロトコルで443番ポートで待ち受ける
KOZ6.0

2024/06/15 03:21

パターン: ^testsearch(/.*)?$ リダイレクトURL: http://localhost:5000{R:1} を試してください。 これだとブラウザの表示も変わるので、元のままにしたい場合はリバースプロキシの導入が必要です。
KOZ6.0

2024/06/15 08:46 編集

ウチでは先のコメントに書いた通りに動いてます。Webサイト(80のほう)を再起動してみましたか?
think49

2024/06/15 10:12

質問者は「80は使えません。」と書いているのでIISで80番ポートを使用していないと思われますが、スルーされた私はおよびではないので質問者へのアドバイスはこれを最後にします。 あと、80番ポートでサーバを立てておきながら、URL Rewriteで5000番ポートにリダイレクトさせるとなると、80番ポートで立てたサーバのコンテンツにアクセスできなくなるので本末転倒な印象。 私なら80番ポートで立てたサーバ一つで運用しますが、私の知らないのっぴきならない事情があるのでしょう。
KOZ6.0

2024/06/15 10:19 編集

@think49 さん なるほど、ポート80 は別のサービスが動いているってことですかね。 とすると、何を設定したのだろう? どうなんです>質問者さん
guest

回答4

0

http://https://のURLにポート番号がなかった場合にアクセスされるポート番号は、ブラウザ側の作り付けであって、変更する方法はありません。

(いろいろ手法が提案されてはいるのですが、現実のHTTP/HTTPSとして運用可能な方法はありません)

80番、443番にサーバを立てられなければ、対応は不可能です。

投稿2024/06/14 12:06

maisumakun

総合スコア145930

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

westbom

2024/06/14 13:55

80は使えません。
guest

0

ポートを省略するのはポート80や443をブラウザがプロトコルと紐づけて省略しているからです。ウェルノウンポートを利用するか、そうでないならプロクシを噛ませばいけるのでは?

投稿2024/06/14 10:18

yambejp

総合スコア116443

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2024/06/14 10:32

内部的と言うなら、ポート5000をポート80にサーバー設定を変えるだけでは? なにをどう問題にしているのかがわかりません
westbom

2024/06/14 13:55

80は使えません。
guest

0

Windows 11 での設定方法を備忘録がてら記述しておきます。
モジュールのダウンロード先は 2024/06/16 現在のものなので将来変わってしまうかもしれません。

1 IIS URL Rewrite モジュールのインストール
https://www.iis.net/downloads/microsoft/url-rewrite

下のほうにある Japanese: x86 installer / x64 installer の「x64 installer」をクリックして rewrite_amd64_ja-JP.msi をダウンロードしインストールします。

2 IIS Application Request Routing (ARR) モジュールのインストール
https://www.microsoft.com/en-us/download/details.aspx?id=47333

「Download」ボタンを押して requestRouter_amd64.msi をダウンロードし、インストールします。

3 C:\inetpub\wwwroot\web.config を編集します。

画面から設定できますが、web.config を書き換えたほうが楽です。
コメントでは http://localhost:5000{R:1} と書きましたが、ローカルの IIS 前提になってしまいますから http://{HTTP_HOST}:5000/{R:1} に書き換えてください。

xml

1<?xml version="1.0" encoding="UTF-8"?> 2<configuration> 3 <system.webServer> 4 <rewrite> 5 <rules> 6 <rule name="testsearch" stopProcessing="true"> 7 <match url="^testsearch(/.*)?$" /> 8 <action type="Rewrite" url="http://{HTTP_HOST}:5000/{R:1}" /> 9 </rule> 10 </rules> 11 </rewrite> 12 <proxy> 13 <reverseProxy enabled="true" /> 14 </proxy> 15 </system.webServer> 16 <system.web> 17 <identity impersonate="false" /> 18 </system.web> 19</configuration>

4 IIS を再起動します。

コマンドプロンプトを管理者権限で立ち上げて

cmd

1net stop W3SVC && net start W3SVC

を実行します。以上です。

投稿2024/06/15 23:36

KOZ6.0

総合スコア2696

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

len_souko

2024/06/16 11:24

最初のアクセスポートは80になりませんか? 質問者のポート80が使えないという発言が分からなくて何とも言えませんので、IISでポート80を占有しているだけなのかどうかも不明です
KOZ6.0

2024/06/16 12:09 編集

はい、最初にリクエストを受けるのは 80 になります。 検索してこのページにたどり着いた方の助けになればと思っています。(質問者さんからコメントが無いので回答になるかどうかは不明ですが)
len_souko

2024/06/16 15:34

なるほど、質問者さん自身は情報を隠蔽したままなので解決はあきらめるとしても検索で飛んでくる人は多いかもしれませんね 回答の意図を理解しました
guest

0

リバースプロキシをかませばいいんじゃないでしょうか?
IISは使ったことないので詳しくないですが、ARR(アプリケーション要求ルーティング処理)というのらしいです。

参考)
https://learn.microsoft.com/ja-jp/iis/extensions/url-rewrite-module/reverse-proxy-with-url-rewrite-v2-and-application-request-routing

投稿2024/06/14 17:12

AbeTakashi

総合スコア4820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問