19

マシンに外部IPとホスト名を構成しています。

アプリケーション内では、APIにアクセスするためにドメイン名のみを使用しています。そのため、IPアドレスを介してAPIにアクセスしようとすると、302Movedtemporaryエラーが表示されます。したがって、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は私を助けます。

4

6 に答える 6

16

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>

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

于 2012-07-25T14:14:36.187 に答える
1

これを試して:

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

また、書き換えログを確認できます。こちらをご覧ください

于 2012-07-25T12:52:30.040 に答える
1

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

ケース1:ユーザーがhttp://XX.XX.XX.XX/mainまたはhttp://ayz-abc.mysite.com/mainにアクセスすると、 https ://ayz-abc.mysite.comにリダイレクトされます。 /主要

構成:

#
# 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>
于 2012-07-26T08:04:08.033 に答える
0

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>

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

于 2015-09-28T07:45:28.153 に答える
0

これにより、IPへのすべてのリクエストがドメイン上の同様のものにリダイレクトされます

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{HTTP_HOST} ^12\.34\.56\.78$

RewriteRule ^/(.*)$  https://ayz-abc.mysite.com/$1 [L,R=301]

</IfModule>
于 2019-12-22T10:35:09.897 に答える
-1

httpsドメインを使用している場合は、以下を追加してください。

# BEGIN HTTPS Redirection Plugin
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} ^XX\.XX\.XX\.XX$
RewriteRule ^(.*)$ https://your-domain-name.com/$1 [L,R=301]
</IfModule>
# END HTTPS Redirection Plugin

サイトでhttpsリダイレクトプラグインを使用しています。上記のコードブロックはプラグインによって生成され、コードブロックに2行だけ追加しました。以下の2行は、IPをドメインリダイレクトに設定する役割を果たします。

RewriteCond %{HTTP_HOST} ^XX\.XX\.XX\.XX$
RewriteRule ^(.*)$ https://your-domain-name.com/$1 [L,R=301]

ここで、 ^ XX.XX.XX.XX $はIPアドレスです。次のように置き換えます:^12.34.56.78$をサーバーIPに置き換えます。

ありがとう

于 2018-12-19T13:59:21.023 に答える