- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Обычно, что бы организовать перенаправление на новую страницу юзал в .htaccess следующую конструкцию:
Redirect 301 /razdel.php http://www.site.ru/razdel
Все работает.
Появилась такая задача:
Redirect 301 /razdel http://www.site.ru/razdel/
от этой конструкции апач сходит с ума и пишет "Веб-страница http://www.site.ru/razdel////////////////////// привела к избыточному количеству переадресаций."
Как правильно все сделать в этой ситуации?
вы просто хотите перевести все урлы вида domain.ltd/* в вид domain.ltd/*/ ?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) http://domain.ltd/$1/ [R=301,L]
Может так? Т.е. я убеждаюсь, что /* - не файл, что url не является разделом,
как в вашем примере и только в этом случае добавляю ему в хвост /$1/
Не все, а один конкретный.
Надо обозначить, что урл является точным вхождением, для чего служат знаки ^ в начале и $ в конце, ну и флаг L, чтобы не выполнялись дальнейшие преобразование (лучше это правило при наличии других ставить в начале)
RewriteRule ^/razdel$ razdel/ [R=301,L]
правду сказал alexspb. не забудьте убрать тот редирект, что создает loop. а по хорошему, покажите htaccess, может у вас там прописано правило удалять последний слеш.
Перепробовал все варианты. Что-то у меня не получается.
Релевантный кусок htaccess выглядит так:
RewriteEngine On
RewriteRule ^catalogue/([0-9]+)/$ /catalogue.php?pos_id=$1
RewriteRule ^catalogue/([0-9]+)$ /catalogue.php?pos_id=$1
(достался мне по наследству, весь его идиотизм я понимаю, но так уж вышло :()
Мне нужен 301 редирект с catalogue/33 на catalogue/33/
RewriteRule ^catalogue/33/$ catalogue/33 [R=301,L] (со всеми вариациями) не срабатывает почему-то. Тоже зацикливается
shamuey добавил 29.01.2010 в 11:55
Если кому интересно, победить задачу "добавить в конце слеш" средствами mod_rewrite не удалось. Решили средствами php.
if (substr($_SERVER['REQUEST_URI'], -1) != '/'){
header('HTTP/1.1 301 Moved Permanently');
header("Location: ".substr(BASE_HREF, 0, (strlen(BASE_HREF)-1)).$_SERVER['REQUEST_URI'].'/');
die();
}
Опять геморрой. Проклятое гуманитарное образование; проклятый слеш...
RewriteRule ^catalogue/([0-9]+)/$ /catalogue.php?pos_id=$1
RewriteRule ^catalogue/([0-9]+)$ /catalogue.php?pos_id=$1
<-- такая вот странная конструкция, которая формирует одновременно и http://www.site.ru/catalogue/250, и http://www.site.ru/catalogue/250/ -->
Redirect 301 /catalogue/250/ http://www.site.ru/catalogue/250
В итоге получается http://www.site.ru/catalogue/250?pos_id=250, а хочется естественно http://www.site.ru/catalogue/250
Снизойдите, о повелители mod_rewrite. 10 wmz тому, чье решение будет работать.
Опять геморрой. Проклятое гуманитарное образование...
RewriteRule ^catalogue/([0-9]+)/$ /catalogue.php?pos_id=$1
RewriteRule ^catalogue/([0-9]+)$ /catalogue.php?pos_id=$1
Redirect 301 /catalogue/250/ http://www.site.ru/catalogue/250
В итоге получается http://www.site.ru/catalogue/250?pos_id=250
Снизойдите, о повелители mod_rewrite. 10 wmz тому, чье решение будет работать.
В помощь Вам:
Redirect 301 /old-page.html http://new-domain.ru/new-page.html
или
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
Недостатком данного способа является то, что все адреса, которые необходимо перенаправить, нужно перечислять один за одним, каждый отдельно. Также можно использовать RedirectPermanent для аналогичных целей.
RedirectPermanent /old-url.html http://new-site.ru/new-url.html
Редирект с помощью директивы RedirectMatch
Этот редирект подобен предыдущему, за исключением того, что можно задавать регулярное выражение для старых URL адресов. Допустим, при смене движка с PHP на ASP, можно старые адреса перенаправить следующим образом:
RedirectMatch /(.*)\.php$ /$1.aspx