Евгения 0 Опубликовано 20 июня, 2013 Жалоба Share Опубликовано 20 июня, 2013 День добрый. Прошу помощи. При переносе магазина на VamShop есть необходимость прописать редиректы для товаров и инф.страниц. Прописала в .htaccess строку: Redirect 301 /index.php?productID=1019 http://сайт.ru/новый-адрес-товара.html Не работает. При открытии страницы она имеет адрес /index.php?productID=1019, и по нему открывается содержимое главной страницы. Но! Если прописать редирект вида: Redirect 301 /новый-адрес-одного-товара.html http://сайт.ru/новый-адрес-другого-товара.html, то такой редирект работает. Работает даже если, к примеру, новости заредиректить на новую страницу товара: Redirect 301 /news.php http://сайт.ru/новый-адрес-товара.html/ Работает. А почему тогда не работает редирект со страниц вида /index.php?productID=1019 ?? Подскажите, пожалуйста. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 20 июня, 2013 Жалоба Share Опубликовано 20 июня, 2013 Здравствуйте! А Вы в гугле смотрели как правильно прописывать редирект, может ошибка в запись правила в .htaccess ?! Например нужно полный URL адрес указывать, а на просто /index.php .... Ссылка на сообщение Поделиться на другие сайты
Евгения 0 Опубликовано 20 июня, 2013 Автор Жалоба Share Опубликовано 20 июня, 2013 Смотрела. Источник перенаправления указывается относительным адресом, а конечный адрес - полным. Даже если поэкспериментировать и прописать полный адрес вместо относительного - всё равно не работает. Ссылка на сообщение Поделиться на другие сайты
Евгения 0 Опубликовано 20 июня, 2013 Автор Жалоба Share Опубликовано 20 июня, 2013 Ответ хостера: "Здравствуйте, Этот вопрос не имеет отношения к функционированию скриптов, переадресация производится сервером. Проверьте правильность данного правила, удостоверьтесь, что оно не конфликтует с каким-либо соседним правилом в этом же файле." Файл .htaccess стандарный от VamShop, дополнительных настроек я там не прописывала, помимо 301 редиректа, который пытаюсь настроить. 301 редирект прописываю согласно всем правилам. Тогда отчего же он работает весьма выборочно? Содержимое файла .htaccess: ---------------------------------------------- AddDefaultCharset utf-8 RewriteEngine On RewriteBase / RewriteRule ^product_reviews_write\.php\/info\/p(.*)_.*\.html product_reviews_write\.php\?products_id=$1 [L] RewriteRule ^product_reviews_write\.php\/action\/process\/info\/p([0-9]*)_.*\.html product_reviews_write\.php\?action=process\&products_id=$1 [L] RewriteRule ^product_info\.php\/info\/p(.*)_.*\/action\/add_product product_info\.php\?products_id=$1\&action=add_product\ [L] RewriteRule ^shopping_cart\.php\/products_id\/([0-9]*)\/info\/p([0-9]*)_.*\.html shopping_cart\.php\?products_id=$1 [L] RewriteRule ^(product_info|index|shop_content|news|faq|articles|article_info).php(.*)$ redirector.php [L] RewriteRule ^.*\.gif|\.jpg|\.jpeg|\.png|\.css|\.php|\.js$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*).html(.*)$ manager.php [L] # PHP 5, Apache 1 and 2. <IfModule mod_php5.c> php_value magic_quotes_gpc 0 php_value register_globals 0 php_value session.auto_start 0 php_value mbstring.http_input pass php_value mbstring.http_output pass php_value mbstring.encoding_translation 0 php_value default_charset UTF-8 php_value mbstring.internal_encoding UTF-8 </IfModule> ------------------------------- Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 20 июня, 2013 Жалоба Share Опубликовано 20 июня, 2013 Попробуйте вообще всё содержимое удалить в .htaccess и оставить только строки с Вашим редиректом. Ссылка на сообщение Поделиться на другие сайты
Евгения 0 Опубликовано 20 июня, 2013 Автор Жалоба Share Опубликовано 20 июня, 2013 Сделала так, как Вы посоветовали. Удалила все строки. Оставила только правило. Не работает :( Странно. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 20 июня, 2013 Жалоба Share Опубликовано 20 июня, 2013 плохо смотрите Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.сайт\.ru RewriteRule ^(.*)$ http://сайт.ru/$1 [R=permanent,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://сайт.ru/ [R=301,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://сайт.ru/ [R=301,L] пример 301 редиректа. работает всегда Ссылка на сообщение Поделиться на другие сайты
Евгения 0 Опубликовано 20 июня, 2013 Автор Жалоба Share Опубликовано 20 июня, 2013 Видимо моих знаний в этом вопросе не хватает. Если я правильно поняла, то указанные Вами правила определяют 1) перенаправление сайта с www на без www, 2) все страницы php на новый сайт, 3) все страницы вида html на новый сайт. Так? В Вашем примере есть правило, которое перенаправляет с одной конкретной страницы на вторую конкретную страницу? Как мне, согласно Вашему примеру, прописать перенаправление страницы вида /index.php?productID=1019 на страницу вида http://сайт.ru/krahmal.html ? Заранее спасибо за ответ. P.S. Домен у меня не менялся. Сайт остался прежним. Поменялись только адреса страниц с товарами. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 20 июня, 2013 Жалоба Share Опубликовано 20 июня, 2013 Видимо моих знаний в этом вопросе не хватает. Если я правильно поняла, то указанные Вами правила определяют 1) перенаправление сайта с www на без www, 2) все страницы php на новый сайт, 3) все страницы вида html на новый сайт. Так? В Вашем примере есть правило, которое перенаправляет с одной конкретной страницы на вторую конкретную страницу? Как мне, согласно Вашему примеру, прописать перенаправление страницы вида /index.php?productID=1019 на страницу вида http://сайт.ru/krahmal.html ? Заранее спасибо за ответ. P.S. Домен у меня не менялся. Сайт остался прежним. Поменялись только адреса страниц с товарами. RewriteCond %{HTTP_HOST} ^www\.сайт\.ru RewriteRule ^(.*)$ http://сайт.ru/$1 [R=permanent,L] перенаправляет с www на без www RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://сайт.ru/ [R=301,L] убирает дубль главной т.е index.php RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://сайт.ru/ [R=301,L] убирает дубль главной т.е index.html И ответ в студию: Redirect 301 /index.php?productID=1019 http://site.ru/krahmal.html Ссылка на сообщение Поделиться на другие сайты
Евгения 0 Опубликовано 21 июня, 2013 Автор Жалоба Share Опубликовано 21 июня, 2013 Уважаемый KoVaLsKy, Ваш ответ поразил меня в самое сердце! Пожалуйста, прочитайте мой первый пост, и Вы увидите, что Ваш "ответ в студию" был тем самым решением, которое у меня НЕ РАБОТАЕТ. И именно поэтому я и открыла эту тему. День добрый. Прошу помощи. При переносе магазина на VamShop есть необходимость прописать редиректы для товаров и инф.страниц. Прописала в .htaccess строку: Redirect 301 /index.php?productID=1019 http://сайт.ru/новый-адрес-товара.html Не работает. При открытии страницы она имеет адрес /index.php?productID=1019, и по нему открывается содержимое главной страницы. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 21 июня, 2013 Жалоба Share Опубликовано 21 июня, 2013 ))))))) понатарез блин )))) Значит у Вас сервак мягко говоря "фиговый" Есть еще вариант через php редирект сделать в таком случае P.S извините за "пораженное" сердечко )))) http://vk.com/doc15858197_195577729?hash=fc9f5963824f539268 Ссылка на сообщение Поделиться на другие сайты
96db 0 Опубликовано 13 июля, 2013 Жалоба Share Опубликовано 13 июля, 2013 Подскажите пожадуйста... Мне нужно склеить зеркала с без www на www для этого прописав редирек. само выражение... Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^сайт\.ru$ [NC] RewriteRule ^(.*)$ http://www.сайт.ru/$1 [R=301,L] Куда в .htaccess нужно вставлять данное выражение что б все работало. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 14 июля, 2013 Жалоба Share Опубликовано 14 июля, 2013 Куда угодно. Ссылка на сообщение Поделиться на другие сайты
96db 0 Опубликовано 15 июля, 2013 Жалоба Share Опубликовано 15 июля, 2013 В любое не получается. если ставить так: AddDefaultCharset utf-8 RewriteEngine On RewriteBase / Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^сайт\.ru$ [NC] RewriteRule ^(.*)$ http://www.сайт.ru/$1 [R=301,L] RewriteRule ^product_reviews_write\.php\/info\/p(.*)_.*\.html product_reviews_write\.php\?products_id=$1 [L] RewriteRule ^product_reviews_write\.php\/action\/process\/info\/p([0-9]*)_.*\.html product_reviews_write\.php\?action=process\&products_id=$1 [L] то не пускает в админку. если вставить так: AddDefaultCharset utf-8 RewriteEngine On RewriteBase / RewriteRule ^product_reviews_write\.php\/info\/p(.*)_.*\.html product_reviews_write\.php\?products_id=$1 [L] RewriteRule ^product_reviews_write\.php\/action\/process\/info\/p([0-9]*)_.*\.html product_reviews_write\.php\?action=process\&products_id=$1 [L] RewriteRule ^product_info\.php\/info\/p(.*)_.*\/action\/add_product product_info\.php\?products_id=$1\&action=add_product\ [L] RewriteRule ^shopping_cart\.php\/products_id\/([0-9]*)\/info\/p([0-9]*)_.*\.html shopping_cart\.php\?products_id=$1 [L] RewriteRule ^(product_info|index|shop_content|news|faq|articles|article_info).php(.*)$ redirector.php [L] RewriteRule ^.*\.gif|\.jpg|\.jpeg|\.png|\.css|\.php|\.js$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*).html(.*)$ manager.php [L] Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^сайт\.ru$ [NC] RewriteRule ^(.*)$ http://www.сайт.ru/$1 [R=301,L] то не отображает картинки которые прогружаю после вставки кода. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 июля, 2013 Жалоба Share Опубликовано 15 июля, 2013 Может какая ошибка в коде, я не особо спец. по правилам .htaccess, посмотрите примеры в гугле. Ну и два раза RewriteEngine On наверное нет смысла добавлять строку, достаточно одного раза. Ссылка на сообщение Поделиться на другие сайты
Merakules 0 Опубликовано 7 октября, 2013 Жалоба Share Опубликовано 7 октября, 2013 Добрый день. подскажите Вот редирект 301 RewriteCond %{HTTP_HOST} ^site\.ru$ [NC] RewriteCond %{REQUEST_URI} !^/robots.* RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L] скажите строка RewriteCond %{REQUEST_URI} !^/robots.* Для чего везде пишут без нее, а я так понимаю это для поисковиков (для яши?) вобщем что это? нужно или нет? Спасибо Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 октября, 2013 Жалоба Share Опубликовано 8 октября, 2013 Я даже не особо в курсе .htaccess правил. Попробуйте через гугл поискать статьи. Если редирект работает, то наверное эта строка не принципиальна. Ссылка на сообщение Поделиться на другие сайты
Merakules 0 Опубликовано 8 октября, 2013 Жалоба Share Опубликовано 8 октября, 2013 Да тут засада в том что в гугле это и нашел а пояснений увы. Но да ладно. Возник косяк вот в чем, если я изначально захожу и выдается WWW (как и запрограмировал) то переходя на любую другую страницу то в адресной строке теряется WWW!!! Поковыряю конечно но может кто подскажет в чем косяк Вот код рабочего файла(вроде другие функции работают(те и вход есть и все остальное работает, кроме WWW на остальных страницах) AddDefaultCharset utf-8 RewriteEngine On RewriteBase / RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://www.----bike.pro/ [R=301,L] RewriteRule ^index\.html$ http://www.----ike.pro/ [R=301,L] RewriteRule ^product_reviews_write\.php\/info\/p(.*)_.*\.html product_reviews_write\.php\?products_id=$1 [L] RewriteRule ^product_reviews_write\.php\/action\/process\/info\/p([0-9]*)_.*\.html product_reviews_write\.php\?action=process\&products_id=$1 [L] RewriteRule ^product_info\.php\/info\/p(.*)_.*\/action\/add_product product_info\.php\?products_id=$1\&action=add_product\ [L] RewriteRule ^shopping_cart\.php\/products_id\/([0-9]*)\/info\/p([0-9]*)_.*\.html shopping_cart\.php\?products_id=$1 [L] RewriteRule ^(product_info|index|shop_content|news|articles|article_info).php(.*)$ redirector.php [L] RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.js$ - [L] RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.js$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*).html(.*)$ manager.php [L] RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.php|\.js$ - [L] # PHP 5, Apache 1 and 2. <IfModule mod_php5.c> php_value magic_quotes_gpc 0 php_value register_globals 0 php_value session.auto_start 0 php_value mbstring.http_input pass php_value mbstring.http_output pass php_value mbstring.encoding_translation 0 php_value default_charset UTF-8 php_value mbstring.internal_encoding UTF-8 </IfModule> Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^----ike\.pro$ [NC] RewriteRule ^(.*)$ http://www.----ike.pro/$1 [R=301,L] Где ошибка? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 9 октября, 2013 Жалоба Share Опубликовано 9 октября, 2013 А зачем Вас www в адресе?! Лично мне кажется, что без www лучше и короче. Если так надо, пропишите в /includes/configure.php и /admin/includes/confogure.php В названии домена добавьте www. У Вас наверное без www. домен прописан, что правильно, на мой вкус. Ссылка на сообщение Поделиться на другие сайты
Merakules 0 Опубликовано 9 октября, 2013 Жалоба Share Опубликовано 9 октября, 2013 СЕОшник мозг выел сделай ридерек что бы WWW был везде! и Сделай что бы index php index html в домен.ком перекидывался. Ща в конфигурах попробую а из хт аксес выкину этот код Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 9 октября, 2013 Жалоба Share Опубликовано 9 октября, 2013 Да это чушь. Нужно что б просто было единообразие адресов. т.е. или все адреса с www или все без www. Главное что б не было и с www и без www. Как раз в конфиг файле название домена для этого и прописывается, что б все адреса внутри магазина были единообразны. Вы лучше занимайтесь удалением дублей, запретом не нужных страниц к индексации. P.S. Ну и по-меньше случайте так называемых сеошников, они не являются последней и непоколебимой инстанцией, по мне так вообще среди них практически одни проходимцы. Типа купил ссылок в сапе и всё отлично. Очень аккуратно с ними работайте, а то может стать только хуже. Ссылка на сообщение Поделиться на другие сайты
Merakules 0 Опубликовано 9 октября, 2013 Жалоба Share Опубликовано 9 октября, 2013 Да ладно, я его давно знаю. пока все хорошо делал. А каких дублей, например? теперь вопрос правильно РНР поправил? // Define the webserver and path parameters // * DIR_FS_* = Filesystem directories (local/physical) // * DIR_WS_* = Webserver directories (virtual/URL) define('HTTP_SERVER', 'http://www.----e.pro'); // eg, http://localhost - should not be empty for productive servers define('HTTPS_SERVER', 'http://www.----e.pro'); // eg, https://localhost - should not be empty for productive servers define('ENABLE_SSL', false); // secure webserver for checkout procedure? define('DIR_WS_CATALOG', '/'); // absolute path required define('DIR_FS_DOCUMENT_ROOT', '/var/www/---e/data/www/----e.pro/'); define('DIR_FS_CATALOG', '/var/www/----e/data/www/----e.pro/'); define('DIR_WS_IMAGES', 'images/'); В хтаксесе уже прописывать ненужно? Потому как если входишь без www то главная отображается без оных, Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 9 октября, 2013 Жалоба Share Опубликовано 9 октября, 2013 Да ладно, я его давно знаю. пока все хорошо делал. А каких дублей, например? теперь вопрос правильно РНР поправил? // Define the webserver and path parameters // * DIR_FS_* = Filesystem directories (local/physical) // * DIR_WS_* = Webserver directories (virtual/URL) define('HTTP_SERVER', 'http://www.----e.pro'); // eg, http://localhost - should not be empty for productive servers define('HTTPS_SERVER', 'http://www.----e.pro'); // eg, https://localhost - should not be empty for productive servers define('ENABLE_SSL', false); // secure webserver for checkout procedure? define('DIR_WS_CATALOG', '/'); // absolute path required define('DIR_FS_DOCUMENT_ROOT', '/var/www/---e/data/www/----e.pro/'); define('DIR_FS_CATALOG', '/var/www/----e/data/www/----e.pro/'); define('DIR_WS_IMAGES', 'images/'); В хтаксесе уже прописывать ненужно? Потому как если входишь без www то главная отображается без оных, проблема в том, что если вас захотят понизить конкуренты, они накупят ссылок на Ваш сайт с www префиксом и с дублями главной. в итоге, упадет главная и будут дубли страниц. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 9 октября, 2013 Жалоба Share Опубликовано 9 октября, 2013 Merakules Да полно всяких страниц, посмотрите свой магазин, какие страницы проиндексированы, например в яндекс-вебмастере и google webmaster. С этим вопросом так и не разобрались до конца, на данный момент. Но надеюсь, что разберёмся в будущих версиях. Ссылка на сообщение Поделиться на другие сайты
Амира 0 Опубликовано 9 января, 2014 Жалоба Share Опубликовано 9 января, 2014 Ситуация такая, изначально .htaccess содержал только: <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.мойсайт\.ru$ [NC] RewriteRule ^(.*)$ http://мойсайт.ru/$1 [R=301,L] RewriteRule c16_абракадабра.html http://мойсайт.ру/index.php/cat/абракадабра.html [R=permanent,L] </IfModule> Все прекрасно работало, но после добавления перед данным кодом, другого кода для работы ручного сео урл кое-что перестало работать, а именно RewriteRule c16_абракадабра.html http://мойсайт.ру/index.php/cat/абракадабра.html [R=permanent,L] Код выглядит вот так: AddDefaultCharset utf-8 RewriteEngine On RewriteBase / RewriteRule ^product_reviews_write\.php\/info\/p(.*)_.*\.html product_reviews_write\.php\?products_id=$1 [L] RewriteRule ^product_reviews_write\.php\/action\/process\/info\/p([0-9]*)_.*\.html product_reviews_write\.php\?action=process\&products_id=$1 [L] RewriteRule ^product_info\.php\/info\/p(.*)_.*\/action\/add_product product_info\.php\?products_id=$1\&action=add_product\ [L] RewriteRule ^shopping_cart\.php\/products_id\/([0-9]*)\/info\/p([0-9]*)_.*\.html shopping_cart\.php\?products_id=$1 [L] RewriteRule ^(product_info|index|shop_content|news|articles|article_info).php(.*)$ redirector.php [L] RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.js$ - [L] RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.js$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*).html(.*)$ manager.php [L] RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.php|\.js$ - [L] # PHP 5, Apache 1 and 2. <IfModule mod_php5.c> php_value magic_quotes_gpc 0 php_value register_globals 0 php_value session.auto_start 0 php_value mbstring.http_input pass php_value mbstring.http_output pass php_value mbstring.encoding_translation 0 php_value default_charset UTF-8 php_value mbstring.internal_encoding UTF-8 </IfModule> <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.мойсайт\.ru$ [NC] RewriteRule ^(.*)$ http://мойсайт.ru/$1 [R=301,L] RewriteRule c16_абракадабра.html http://dollyeye.ru/index.php/cat/абракадабра.html [R=permanent,L] </IfModule> Дело в том, что нужный мне редирект, это несуществующая удаленная категория, но на нее много внешних ссылок, мне нужно чтобы стояла перманентная переадресация на другую категорию. Может быть кто в курсе, что нужно исправить, чтобы снова заработал данный редирект? Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения