2 年前に 1 つの言語で Magento を使用して Web サイトを作成しましたが、別の言語を追加したいと考えています。私の実際の構造はそのようなものです
- example.com/category/
- example.com/about.html
- example.com/product.html
次のような構造を取得したいと思います。
- example.com/lang1/category/
- example.com/lang1/about.html
- example.com/lang1/product.html
- example.com/lang2/category/
- example.com/lang2/about.html
- example.com/lang2/product.html
これは大したことではありません。Magento ではバックエンドにログインするだけで済みます -> システム -> 構成 -> ウェブ -> ストア コードを URL に追加 (YES)
その前に、最初の構造から新しい構造に修正して書き直す必要があるため、この設定を今すぐ行うことはできません。
- example.com/everything_without_the_/lang1/_パーマネントへのパス
- example.com/lang1/everything
たとえば、ソーシャルや他のウェブサイトからの投稿からのバックリンクからの URL は 404 エラーを取得せず、新しい構造の同等のページへの 301 リダイレクトで自動的にリダイレクトされる必要があります。
そこで、自然言語で次のようなスクリプトを追加したいと思います。
rewrite permanently all the urls which ends not with /lang1/ or /lang2/ to urls with the prefix /lang1/
Magento バックエンドでこのスキーマを使用して書き換えルールを手動で追加できることはわかっていますが、これをデータベースから直接バッチ処理できるかどうか、または .htaccess または index.php のスクリプトを使用してバッチ処理できるかどうかを知りたいです。これらのソリューションの間で、SEO と SERP への悪影響が少なくなります。
私は解決策を見つけました
こんにちは私は解決策を見つけました:
RewriteCond %{HTTP_HOST} ^(.)?example.com$ [NC]
RewriteCond %{REQUEST_URI} !^/it/
RewriteCond %{REQUEST_URI} !^/en/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /it/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(.)?example.com$ [NC]
RewriteRule ^(/)?$ it/index.php [L]
一見すると動作しますが、保証はしません。これが乾杯に役立つことを願っています