Переписать htaccess старые ссылки oscommerce - PullRequest
0 голосов
/ 19 июля 2011

Я пытаюсь переписать все старые ссылки oscommerce на новый сайт.Но у меня возникли проблемы с частью URL, которую мне нужно переписать.

Ссылка выглядит следующим образом:

http://www.domain.com/product_info.php?cPath=3_72&products_id=129&osCsid=6j3iabkldjcmgi3s1344lk1285

Это переписывание работает для указанной выше ссылки:

RewriteCond %{REQUEST_URI}  ^/product_info\.php$
RewriteCond %{QUERY_STRING} ^cPath=3_72&products_id=129&osCsid=([A-Za-z0-9-_]+)$
RewriteRule ^(.*)$ http://www.domain.com/apple/air.html? [R=301,L]

Но не будет работать для:

http://www.domain.com/product_info.php?cPath=3_72&products_id=129

Моя проблема в том, что я хочу, чтобы перезапись работала независимо от того, включена ли часть &osCsid=6j3iabkldjcmgi3s1344lk1285 или нет.

Ответы [ 2 ]

3 голосов
/ 19 июля 2011

Я думаю, что вы можете достичь этого, не указав закрывающий разделитель ($)

Дайте попробовать:

RewriteCond %{REQUEST_URI}  ^/product_info\.php$
RewriteCond %{QUERY_STRING} ^cPath=3_72&products_id=129
RewriteRule ^(.*)$ http://www.domain.com/apple/air.html? [R=301,L]

Не помещая $ в конец строки регулярного выражения, вы в основном говорите: сопоставьте любую строку, начинающуюся с ..., независимо от того, что будет после

Надеюсь, это поможет:)

1 голос
/ 19 июля 2011

Это должно хорошо сработать:

RewriteCond %{QUERY_STRING} ^cPath=3_72&products_id=129
RewriteRule ^product_info\.php$ http://www.domain.com/apple/air.html? [R=301,L]
  1. Нет необходимости в отдельном условии RewriteCond %{REQUEST_URI} ^/product_info\.php$ - эту часть можно (на самом деле, ДОЛЖНО БЫТЬ для лучшей производительности) переместить в RewriteRule.

  2. Этого достаточно ^cPath=3_72&products_id=129 - он сообщает "Когда строки запроса начинаются с ...". Не нужно включать необязательные / не важные параметры osCsid=([A-Za-z0-9-_]+).

  3. Это правило должно быть помещено в файл .htaccess в корневой папке сайта. При размещении в другом месте может потребоваться небольшая настройка.

...