質問

私は私の古い店をMagentoに移動しました、1.9.2 CE Magentoを使ってim。古い店は何年もの間起きて走っていて、私はSEOのURLを失いたくなかったので、301のリダイレクトをやろうとすると、問題に直面しています。

古いURLにindex.phpがある場合は、新しいURLにリダイレクトする代わりに、Magentoはホームページにリダイレクトされます。

MagentoのデフォルトのURL書き換えでこれをやってみました。第三者の拡張子でも、HTAccessで試してみました。常に同じ結果。

例えば:

.htaccess

の後続コード
Redirect 301 /index.php?main_page=product_info&products_id=161 http://domain.com/catalogsearch/result/?q=sku-161 --- This redirects to homepage (Doesnt work properly)
Redirect 301 /main_page=product_info&products_id=331 http://domain.com/catalogsearch/result/?q=sku-331 --- This redirects to new URL (Works Properly) 
.

問題は、私の古いURLはすべてindex.phpを持っていますか?その中で、私はそれをどういうわけか働くようにする必要があります。

任意のアイデア?

ありがとう:)

役に立ちましたか?

解決

.htaccessファイルのリダイレクトディレクティブがクエリ文字列と一致しないため、リクエストURI(疑問符の前の部分)のみが一致しません。クエリ文字列と一致するには、REWRITECONDとREWRITERULEディレクティブを使用する必要があります。この上記の詳細はこちら: https://simonecarletti.com/blog/2009/01 / apache-query-query-string-redirections /

これは.htaccess

で動作するはずです
RewriteEngine On

RewriteCond %{QUERY_STRING} ^main_page=product_info&products_id=331$
RewriteRule ^index\.php$ http://gearx.local/catalogsearch/result?q=sku-331 [R=301,L]
.

リダイレクトする必要があるすべてのURLが数値IDを持つ同じ形式である場合、これらの2行はそれらすべての世話をする必要があります。

RewriteCond %{QUERY_STRING} ^main_page=product_info&products_id=([0-9]+)$
RewriteRule ^index\.php$ http://gearx.local/catalogsearch/result?q=sku-%1 [R=301,L]
.

検索結果ページではなく、実際の製品のURLにリダイレクトすることをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top