2017-09-24 1 views
0

サブディレクトリをサブドメインにリダイレクトしたいのですが、サイトマップのエンドポイントをメンテナンスする必要があります。私は必要なものリダイレクト301は、htaccessでURLに文字列が存在する場合を除きます。

は次のとおりです。

Redirect 301 /ru/ https://ru.mydomain.com 
#Exclude *sitemap* 

URLのこの種は、リダイレクトすることができません。

https://www.mydomain/ru/sitemap.xml 
https://www.mydomain/ru/sitemap.1.xml 
https://www.mydomain/ru/sitemap.3.xml 
https://www.mydomain/ru/sitemap_ru.xml 

すべては、サイトマップの文字列を持っていると私は、サイトマップの単語がURLのときに何をリダイレクトする必要はありません。 私は運がなければそれを修正しようと多くの時間がかかるので、希望は私を助けることができます。

私が好き必要があります。

{if *sitemap* is not present} 
Redirect 301 /ru/ https://ru.mydomain.com 
{/if} 

感謝を!

+0

Apacheのバージョンは何ですか? –

答えて

0

これはあなたのために働くはずです。ウェブサイト(www.mydomain)のURLが/ ruで始まり、/ ru/sitemapで始まらない場合は、(301)をhttps://ru.mydomain.com/にリダイレクトしますが、パスに/ ruは付けません。例えばhttps://www.mydomain/ru/newsはNC旗が、これは大文字小文字を区別しないことを意味しhttps://ru.mydomain.com/news

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.mydomain$ [NC] 
RewriteCond %{REQUEST_URI} ^/?ru(/.*)?$ [NC] 
RewriteCond %{REQUEST_URI} !^/?ru/sitemap.*$ [NC] 
RewriteRule ^/?ru(/(.*))?$ https://ru.mydomain.com/$2 [R=301,L] 

に行きます。 mod_rewriteインストール済みが有効になっている必要があります!

関連する問題