web-dev-qa-db-ja.com

IPをホスト名にリダイレクトするためのApache httpd.conf

マシンに外部IPとホスト名が構成されています。

アプリケーション内では、ドメイン名のみを使用してAPIにアクセスしています。したがって、IPアドレスを介してAPIにアクセスしようとすると、302 Moved temporaryエラーが表示されます。そのため、IPアドレスでサーバーにヒットするリクエスト(ホームページ用)の場合、ホスト名にリダイレクトする必要があります。

つまり、ユーザーが https://XX.XX.XX.XX/main にヒットすると、 https://ayz-abc.mysite.com/main にリダイレクトされます。 =

このために、Apacheのhttpd.confでリダイレクトを使用してみました。

<VirtualHost XX.XX.XX.XX>

DocumentRoot "/var/www/html"
#ServerName ayz-abc.mysite.com/

 # Other directives here
 RewriteEngine On
 RewriteRule /.* https://ayz-abc.mysite.com/ [R]

</VirtualHost>

私も次のことを試しました

<VirtualHost *.portnum>
DocumentRoot "/var/www/html"
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule  https://XX.XX.XX.XX/main https://ayz-abc.mysite.com/main [R=301,L]
</VirtualHost>

Plsssssは私を助けます。

16
Poppy

OK。書き換え条件がありません

<VirtualHost XX.XX.XX.XX>

DocumentRoot "/var/www/html"
#ServerName ayz-abc.mysite.com/

 # Other directives here
 RewriteEngine On
 RewriteCond %{HTTP_Host} !^ayz-abc.mysite.com$
 RewriteRule /.* https://ayz-abc.mysite.com/ [R]

</VirtualHost>

この条件を含めない場合、ホスト名を使用してもリダイレクトされます

12
William McCall

これは私のために働く。 Apacheのhttpd.confに構成を追加します

ケース-1:ユーザーが http://XX.XX.XX.XX/main または http://ayz-abc.mysite.com/main をヒットした場合 https://ayz-abc.mysite.com/main にリダイレクトされます

構成:

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
<VirtualHost *:80>
ServerName XX.XX.XX.XX
Redirect /main https://ayz-abc.mysite.com/main
</VirtualHost>

ケース2:ユーザーが https://XX.XX.XX.XX/main をヒットすると、 https://ayz-abc.mysite.com/main にリダイレクトされます=

構成:

NameVirtualHost *:443
<VirtualHost *:443>
DocumentRoot "/var/www/html"
#Server Name 
ServerName XX.XX.XX.XX
SSLEngine on
SSLOptions +StrictRequire
# Redirect to the specified URL 
Redirect /main https://ayz-abc.mysite.com/main
<Directory />
SSLRequireSSL
</Directory>
....
....
</VirtualHost>
1
Poppy

これを試して:

RewriteRule $ https://ayz-abc.mysite.com/ [L,R]

また、書き換えログを確認できます こちらを参照

1
Ankit

APIを使用していないが、ブラウザーとクローラーがIPアドレスではなくURLにアクセスするようにしたい場合は、RedirectPermanentを使用できます。

<VirtualHost XX.XX.XX.XX>

    RedirectPermanent / http://ayz-abc.mysite.com/

</VirtualHost>

<VirtualHost XX.XX.XX.XX>

    DocumentRoot "/var/www/html"
    ServerName ayz-abc.mysite.com/

</VirtualHost>

これには、301 HTTPステータスで応答するという利点があります。これは、「将来リダイレクトされるURLを使用してください」というシグナルであり、検索エンジンに役立ちます。サイトを新しいドメインに移動する場合、同じソリューションを使用する必要があります。

0
Bojan Hrnkas