メインのウェブサイトに影響を与えずにディレクトリを新しいドメインにリダイレクトする

メインのウェブサイトに影響を与えずにディレクトリを新しいドメインにリダイレクトする

リダイレクトしたいhttps://mineyourmind.de/フォーラムhttps://mineyourmind.net/フォーラム

Google で検索できるすべての書き換えルールは機能せず、メイン ドメイン (mineyourmind.de) もリダイレクトされました。

Apache のサイト構成を使用して、http:// www. および http:// と https:// をリダイレクトしています。

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.mineoyurmind\.de$ [NC]
RewriteRule (.*) https://mienoyurmind.de%{REQUEST_URI} [R=301,L]

フォーラム ディレクトリの .htaccess は次のようになります。

ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 500 default

<IfModule mod_rewrite.c>
    RewriteEngine On

    #   If you are having problems with the rewrite rules, remove the "#" from the
    #   line that begins "RewriteBase" below. You will also have to change the path
    #   of the rewrite to reflect the path to your XenForo installation.
    #RewriteBase /xenforo

    #   This line may be needed to enable WebDAV editing with PHP as a CGI.
    #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
    RewriteRule ^.*$ index.php [NC,L] 
</IfModule>

mineyourmind.de/forum から mineyourmind.net/forum への書き換えを Apache サイト設定に追加するか、htaccess に追加するか、また、これはどのようになるべきでしょうか?


編集:

私は次のように試しました:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.mineyourmind\.de$ [NC]
RewriteRule (.*) https://mineyourmind.de%{REQUEST_URI} [R=301,L]
RewriteRule (/forum.*) https://mineyourmind.net/$1 [R=301,L]

そしてこのように

RewriteEngine On
RewriteRule (/forum.*) https://mineyourmind.net/$1 [R=301,L]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.mineyourmind\.de$ [NC]
RewriteRule (.*) https://mineyourmind.de%{REQUEST_URI} [R=301,L]

どちらも機能していません

答え1

「/forum」で始まるすべてのリクエストをリダイレクトするルールを次に示します。

RewriteRule (/forum.*) https://mineyourmind.net/$1 [R=301,L]

これは、「URI が「/forum」で始まる場合は、URI 全体をキャプチャし、ホスト名を mineyourmind.de に置き換える必要がある」ことを意味します。これは、$1「一致したもの」を意味します。

編集:

名前が「forum」で始まるファイルもリダイレクトしないようにするには、2 つのルールが必要になる場合があります。

# To match /forum only:
RewriteRule ^/forum$ https://mineyourmind.net/$1 [R=301,L] 
# To match any URI under the /forum directory, e.g. "/forum/" and "/forum/someotherfile.html"
RewriteRule ^/forum/(.*) https://mineyourmind.net/forum/$1 [R=301,L]

編集終了

これを .htaccess で行うか、Apache サイト構成で行うかは、システムの設定方法、つまり他のサイト固有のドキュメントをどこに保存するかによって多少異なります。一般的に、.htaccess を使用すると、Apache は新しいリクエストごとに .htaccess ファイルを再読み込みしますが、サイト構成はサーバーが再起動されたときにのみ読み込まれるため、若干のオーバーヘッドがあります。ただし、原則として、管理しやすくするために、可能な限りすべての書き換え構成を同じファイルにまとめます。.htacces、virtualhost.conf、httpd.conf のどれにするかは、あなた次第です。

こちらも読んでみてくださいRewriteRule ドキュメント/では、どのような状況でRewriteRule に初期値を含める必要があるかを説明しています。

関連情報