7

うまくいけば、誰かが私が間違っていることを見ることができますが、ここに物語があります...

私の現在のサイトのURLは、eコマースソフトウェアによって製品名とカテゴリ名から自動生成されるため、製品/カテゴリ名に英数字以外の文字が含まれている場合、これはURLにエンコードされます。これは面倒です。例えば:

mysite.com/Shop/Furniture-Set-Large-Table%2C-4-Chairs.html

私は新しいeコマースソリューションに移行しています。これも製品名からURLを自動生成しますが、英数字以外の文字をすべて削除するのに十分賢いです。また、小文字に変換します。これは、大文字を小文字にリダイレクトするためのhtaccessソリューションを見つけることができました。また、URLの「ショップ」の部分もありません。これもhtaccessで解決できました。例えば:

mysite.com/furniture-set-large-table-4-chairs.html

「ショップ」の部分を削除するには:

RedirectMatch 301 ^/Shop/(.*)$ http://www.mysite.com/$1

404エラーを防ぐために大文字を小文字に置き換えるには:

RewriteCond %{REQUEST_URI} [A-Z]
RewriteCond %{REQUEST_FILENAME} !\.(?:png|gif|ico|swf|jpg|jpeg|js|css|php|pdf)$
RewriteRule (.*) ${lc:http://www.mysite.com/$1} [R=301,L]

これらは両方とも完全に機能します。

したがって、これらのエンコードされた文字をURLから削除するには、htaccessルールまたは場合によってはいくつかが必要です。ソフトウェアがURLを「Table%2C-4-Chairs」として作成するため、これらを置き換える必要はありません。削除するだけです。したがって、削除する必要があるのは%2Cだけです。

URLから次のような特定の文字エンコードを削除する必要があります。

カンマ(%2C)、アポストロフィ(%27)、コロン(%3A)など。

誰かが適切なhtaccessルールをアドバイスできますか?

前もって感謝します。

4

1 に答える 1