2017-10-10 7 views
1

ブログの移行に3つのリダイレクトルールを実装して、各ページをサブフォルダ構造に移行したいと考えています。現在、サブドメインに位置しています。301ブログの移行のリダイレクトルール

私は本当にこの1を台無しにし、私は既存のURLの3種類の正しい一般的なルールを爪を確認することができません

現在

ホームページ:

https://blog.lang.example.com 

目標:

https://www.example.com/lang-country/news/ 

カテゴリー

電流:

https://blog.lang.example.com/category/category-name 

目標:

https://www.example.com/lang-country/news/category/category-name 

ポスト

電流:

https://blog.lang.example.com/yyy/mm/dd/article-name 

目標:

https://www.example.com/lang-country/news/yyy/mm/dd/article-name 

は、これはあなたが助けることができるものですか?

+0

これは基本的に1つのルールです。あなたはすでに何かを試しましたか? –

+1

このサブドメインはどこにファイルシステムを指していますか?メインドメインとは別の場所ですか? 'lang'サブドメインか、文字通り" lang "という単語か、またはこの変数で、サブディレクトリにコピーする必要がありますか?すなわち、 「-国」? – MrWhite

+0

@MrWhite私はファイルシステムについて完全な可視性を持っていません - 謝罪し、これに答える方法が不明です。私は彼らがサブドメインサイトとルートドメインのために異なるCMSシステムを使用していることを知っています。目標は、サブドメインが現在サブフォルダになる同じドメインの下にすべてを持ち込むことです。言語は本当に言語変数になりますし、国もそうです - 明らかではないと悪いです。 - は正しい用語です。 – pedroteixeira07

答えて

1

リダイレクトしたくない他のURLがない限り、サブドメインのドキュメントルートにある.htaccessファイルの上部近くに1回のリダイレクトで必要な処理を行うことができます。例えば

%1が要求されたホストでLANGサブドメインへの後方参照である

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^blog\.([^.]+)\.example\.com [NC] 
RewriteRule (.*) https://www.example.com/%1-country/news/$1 [R,L] 

ただし、ソースURLには存在しないため、countryがターゲットURLから送信されるべきであるという問題があります。これをデフォルトにするか、の言語に基づいて何らかのルックアップを実装する必要があります。 .htaccessでこれを行うには、サーバ設定アクセス(RewriteMapを設定する)が必要です。または、このリダイレクトをサーバー側のスクリプト(PHPなど)に実装します。

これは現在、302(一時的)リダイレクトであることに注意してください。すべてが正常に機能していることをテストしたら(301が必要な場合)、これを301(永続的)リダイレクトに変更してください。 301リダイレクトはブラウザによってキャッシュされているため、テストに問題が生じる可能性があります。

+0

これに感謝しています。 – pedroteixeira07

関連する問題