Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
18.01.2011, 14:14 | #1 |
Продвинутый
Регистрация: 20.11.2010
Сообщений: 40
|
Сделать правильнее сделать 301 Moved Permanently
Всем привет))
Перенес сайт с cms написанной на .Net на Typo3. Все страницы раньше имели путь типа site.ru\contact.aspx , сейчас структура сайта такая же только расширение разное, с aspx поменялось на html. Так как сайту уже год, поисковики уже проиндексировали сайт. Т.е. хочется чтобы при запросе скажем site.ru\contact.aspx typo3 выдавала 301 Moved Permanently и перекидывал на site.ru\contact.html т.е. просто достаточно менять с aspx на html т.к. структура осталась такая же. Как это лучше реализовать? К typo3 прикручен realurl. |
18.01.2011, 17:22 | #2 |
Продвинутый
Регистрация: 20.11.2010
Сообщений: 40
|
сделал вот так, добавил в index.php
PHP код:
RewriteBase / RewriteRule ^(.*)\.aspx$ $1.html [R=permanent,L] Последний раз редактировалось musson; 18.01.2011 в 17:44 |
19.01.2011, 02:50 | #3 |
Senior Member
|
Редиректы самого сервера работают быстрее и не надо ничего менять в ядре системы.
|
05.04.2011, 19:31 | #4 |
Senior Member
|
Обнаружилась проблема с новым RealURL.
Одинаковый контент выдается как для урлов вида page/ и page.html Раньше это решалось установкой в конфиге acceptHTMLsuffix = 1, но в последних версиях этот параметрв хоть и объявляется и описан в доке, но реально в коде не учитывается. Похоже что "принятие" урлов с .html зашито в коде, так как другие урлы, например .htm выдают 404 ошибку. Попробовал в .htaccess такое решение: Код:
RewriteBase / RewriteRule ^(.*)\.html$ $1/ [R=permanent,L] Что посоветуете? Updated: единственное что пока удалось сделать что бы все работало - поменять print.html на print.htm Последний раз редактировалось dmartynenko; 05.04.2011 в 19:48 |
06.04.2011, 19:19 | #5 |
Senior Member
|
А если этот самый атрибут print транслировать просто в /адрес_страницы/ptint/ ?
|
06.04.2011, 19:38 | #6 |
Senior Member
|
Не получиться в .../print/
Так как RealURL умеет добавлять фиксированные переменные только в начало пути, т.е. /en/... или /print/... Добавить "в самый конец" можно только опцией fileName. Ну, вообщем, для конечного пользователя нет разницы как выглядит урл, можно и так и эдак сделать. Самое главное, что для SEO плохо что page/ и page.html выдают одно и тоже, а это поведение что называется "из коробки". |
07.04.2011, 07:35 | #7 |
Senior Member
|
Так на самом деле вполне будет логично выглядеть url типа domain.tld/print/page/id/ - и совершенно точно он не будет отзываться ни на какие *.html
Хотя, насколько я помню при использовании .htaccess в мануале к RealURL был комментарий к какой-то строке "при использовании такой настройки filename работать правильно не будут" (это вольный перевод - передача общего смысла фразы). Можеть быть дело в этом? Потому что у меня работает вроде как вполне адекватно все и при использовании .html и без него. |
07.04.2011, 14:39 | #8 | |
Senior Member
|
Цитата:
РЕШЕНИЕ! Все оказалось просто, но не очевидно. В новой версии проверка наличия суффикса делается вот так: PHP код:
Причем этот конфиг предлагается по умолчанию как в примерах, так и в autoconf, вот кусок из class.tx_realurl_autoconfgen.php PHP код:
PS: Скорее это просто баг, на это указывает то что при генерации этот параметр учитывается простой проверкой, а не isset() PHP код:
|
|
07.04.2011, 15:33 | #9 |
Senior Member
|
Скорее надо выставить acceptHTMLsuffix в 0 - тогда RealURL не будет его воспринимать как еще один вариант именования страницы. Насколько помню это сделано для упрощения миграции со статичных сайтов на динамические.
|
07.04.2011, 15:38 | #10 |
Senior Member
|
Может быть ту информацию, которую я излагал выше сложно целиком воспринять.
Но еще раз повторю то, что уже писал - acceptHTMLsuffix в последних версиях RealURL не используется и не учитывается нигде. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите как правильней сделать | Владимир Умнов | Общие вопросы | 2 | 12.10.2005 11:44 |