Помогите разобраться с .htaccess

zzzzz
На сайте с 12.12.2006
Offline
204
667

В общем заказчик случайно удалил страницу в магазине (двиг - SHOPCMS), на которую куплено 100500 ссылок, последний бекап делали давненько, так что этот вариант исключён, остаётся 301, вот мой редирект:

Redirect 301 /product_254.html http://www.site.ru/product_3.html

в итоге при переходе на несуществующую страницу я попадаю не на

http://www.site.ru/product_3.html

а вот сюда:

http://www.site.ru/product_3.html?productID=254

вот содержимое .htaccess

#####################################
# ShopCMS: Скрипт интернет-магазина
# Copyright (c) by ADGroup
# http://shopcms.ru
#####################################

Options +FollowSymlinks -Indexes -MultiViews
DirectoryIndex index.php
ErrorDocument 404 /404.html

php_value session.use_trans_sid 0
php_value session.use_cookies 1
php_value session.use_only_cookies 1
php_value session.auto_start 0
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value display_errors 0
php_value magic_quotes_runtime 0
php_value allow_url_fopen 1

RewriteEngine On
Redirect 301 /product_254.html http://www.site.ru/product_3.html
RewriteBase /
RewriteCond %{THE_REQUEST} /(\.+) [OR]
RewriteCond %{THE_REQUEST} /(\?+) [OR]
RewriteCond %{THE_REQUEST} /(/+)
RewriteRule ^(.*)$ 404.html [L]
RewriteRule ^core/(install|temp|smarty|modules|languages|includes|functions|fonts|files|config|classes|cache|backup)/(.*) - [F]
RewriteRule ^data/(.+)\.(tpl\.html|php|php3|php4|php5|phtml|pl|cgi) - [F]
RewriteRule ^install_check\.html$ install.php?check=yes [L]
RewriteRule ^index\.html$ index.php [L]
RewriteRule ^news\.html$ index.php?news=yes [L]
RewriteRule ^price\.html$ index.php?show_price=yes [L]
RewriteRule ^cart\.html$ index.php?shopping_cart=yes [L]
RewriteRule ^wide_search\.html$ index.php?search_with_change_category_ability=yes [L]
RewriteRule ^feedback\.html$ index.php?feedback=yes [L]
RewriteRule ^compare\.html$ index.php?comparison_products=yes [L]
RewriteRule ^page_([0-9]+)\.html$ index.php?show_aux_page=$1 [L]
RewriteRule ^product_([0-9]+)\.html$ index.php?productID=$1 [L]
RewriteRule ^category_([0-9]+)\.html$ index.php?categoryID=$1 [L]
RewriteRule ^category_([0-9]+)_offset_([0-9]+)\.html$ index.php?categoryID=$1&offset=$2 [L]
RewriteRule ^category_([0-9]+)_show_all\.html$ index.php?categoryID=$1&show_all=yes [L]
RewriteRule ^show_news_([0-9]+)\.html$ index.php?fullnews=$1 [L]

<IfModule mod_nginx.c>
# Блок правил для сервера Nginx.
# В случае его использования необходимо вставить нижеуказанные правила в файл nginx.conf в секцию location/ для вашего сайта.

location ~* /core/(install|temp|smarty|modules|languages|includes|functions|fonts|files|config|classes|cache|backup)/(.*) {
return 403;
}

location ~* /data/(.+)\.(tpl\.html|php|php3|php4|php5|phtml|pl|cgi) {
return 403;
}
rewrite ^/install_check\.html$ /install.php?check=yes last;
rewrite ^/index\.html$ /index.php last;
rewrite ^/news\.html$ /index.php?news=yes last;
rewrite ^/price\.html$ /index.php?show_price=yes last;
rewrite ^/cart\.html$ /index.php?shopping_cart=yes last;
rewrite ^/wide_search\.html$ /index.php?search_with_change_category_ability=yes last;
rewrite ^/feedback\.html$ /index.php?feedback=yes last;
rewrite ^/compare\.html$ /index.php?comparison_products=yes last;
rewrite ^/page_([0-9]+)\.html$ /index.php?show_aux_page=$1 last;
rewrite ^/product_([0-9]+)\.html$ /index.php?productID=$1 last;
rewrite ^/category_([0-9]+)\.html$ /index.php?categoryID=$1 last;
rewrite ^/category_([0-9]+)_offset_([0-9]+)\.html$ /index.php?categoryID=$1&offset=$2 last;
rewrite ^/category_([0-9]+)_show_all\.html$ /index.php?categoryID=$1&show_all=yes last;
rewrite ^/show_news_([0-9]+)\.html$ /index.php?fullnews=$1 last;
</IfModule>

кто знает в чём проблема?

/////
IL
На сайте с 20.04.2007
Offline
435
#1

В вопросе..

Redirect 301 /product_254.html http://www.site.ru/product_3.html?

Или

RewriteRule ^product_254\.html$ /product_3.html? [R=301,L]
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
zzzzz
На сайте с 12.12.2006
Offline
204
#2
ivan-lev:
В вопросе..
Redirect 301 /product_254.html http://www.site.ru/product_3.html?

Или

RewriteRule ^product_254\.html$ /product_3.html? [R=301,L]

попробовал, не помогает..:(

siv1987
На сайте с 02.04.2009
Offline
427
#3
zzzzz:
попробовал, не помогает..

Плохо пробовали. Использовать только второй вариант и добавлять после RewriteEngine

[umka]
На сайте с 25.05.2008
Offline
456
#4
zzzzz:
попробовал, не помогает..:(

Второй вариант должен работать.

Скорее всего браузер закэшировал. Попробуйте почистить кэш.

Лог в помощь!
zzzzz
На сайте с 12.12.2006
Offline
204
#5
'[umka:
;11491635']Второй вариант должен работать.
Скорее всего браузер закэшировал. Попробуйте почистить кэш.

404 Not Found................

[umka]
На сайте с 25.05.2008
Offline
456
#6
zzzzz:
404 Not Found................

А в браузере URL меняется на "site.ru/product_3.html"?

Если нет, то редирект прописан не в том месте.

Если да, то существует ли страница "/product_3.html"?

zzzzz
На сайте с 12.12.2006
Offline
204
#7
'[umka:
;11491666']А в браузере URL меняется на "site.ru/product_3.html"?
Если нет, то редирект прописан не в том месте.
Если да, то существует ли страница "/product_3.html"?

урл не меняется, а в каком месте надо?

п.с. страница "/product_3.html есть :)

........

перенёс редирект повыше, заработало!!

[umka]
На сайте с 25.05.2008
Offline
456
#8
zzzzz:
урл не меняется

.htaccess в студию :)

zzzzz:
а в каком месте надо?
п.с. страница "/product_3.html есть :)

Сразу после "RewriteEngine on" — обычно прокатывает :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий