|  | Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community | 
| 
 | |||||||
|  | 
|  | Опции темы | Опции просмотра | 
|  01.06.2010, 15:21 | #1 | 
| Senior Member |  TYPO3/RealURL возвращают дубли главной страницы для неправильных url вместо 404 
			
			Обнаружилась проблема с индексацией в google - дублируется главная страница сайта при указании опредленного неправильного адреса. А именно если указать после / текст + ":/" или просто ":/", то возвращается обычное содержимое главной страницы. Причем страницы более глубоких уровней работают правильно - на example.com/page1/http:/ выдается TYPO3-шный ответ/страница 404 Пример: http://typo3.org/ http://typo3.org/http:// http://typo3.org/dfgjkfg:/ Кто-нибудь предложит TYPO3 варианты решения? Единственно что пока приходит в голову - через .htaccess UPDATE: Быстрое решение - в .htaccess прописал: RedirectMatch 404 ^/([^/]*?)(:/)(.*)$ В результате на ошибочные URL выдается апачевский ответ 404, на более глубоких уровнях 404 выдает TYPO3 Последний раз редактировалось dmartynenko; 01.06.2010 в 15:40 | 
|   |   | 
|  02.06.2010, 11:36 | #2 | 
| Senior Member Регистрация: 25.12.2009 
					Сообщений: 106
				 |   
			
			попробуй использовать этот параметр в localconf.php $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = он отвечает за эти задачи как пример $TYPO3_CONF_VARS["FE"]["pageNotFound_handling"] = 'http://www.example.com/not-found-404.html'; $TYPO3_CONF_VARS["FE"]["pageNotFound_handling_statheader"] = 'HTTP/1.1 404 Not Found'; | 
|   |   | 
|  02.06.2010, 12:55 | #3 | 
| Senior Member |   
			
			Эти настройки естесвенно заданы, поэтому везде 404 выдает TYPO3 (о чем я и написал в первом посте). А вот на корневой странице url с ":/" обрабатываются неправильно. Попробуйте у себя... Последний раз редактировалось dmartynenko; 02.06.2010 в 13:07 | 
|   |   | 
|  02.06.2010, 12:56 | #4 | 
| Senior Member Регистрация: 25.12.2009 
					Сообщений: 106
				 |   
			
			у меня резултать вполне ожидаемый http://astroelite.de/:/ или я чтот не так понял? вывод формы логина в данном случае связан с не законченным определителем причины недоступности страницы, в других вариантах он выводит стартовую страницу просто у меня необходимость к закрытым областям выводить именно страницу логина | 
|   |   | 
|  02.06.2010, 13:32 | #5 | 
| Senior Member |   
			
			Возможно у вас более новые версии TYPO3 и RealURL, либо обработчик 404 в pageNotFound_handling прописан свой (а не просто url для редиректа), и поэтому все отрабатыват правильно. Но вот вам реальный пример неправильного поведения: http://typo3.org/:/ http://typo3.org/http:/ Везде http ответы 200 и одинаковое содержание - главная страница. А вот так - http://typo3.org/http - ответ 404. | 
|   |   | 
|  02.06.2010, 13:35 | #6 | 
| Senior Member Регистрация: 25.12.2009 
					Сообщений: 106
				 |   
			
			в моем случае стоит свой обработчик дабы разделить не разрешенные и не существующие страницы в принципе это можно увидеть и по возвращаемым хедерам 404 и 403 | 
|   |   | 
|  02.06.2010, 13:38 | #7 | 
| Senior Member |   
			
			Можете привести ваш пример в качестве решения этой проблемы?   Я думаю для форумчан будет полезно. | 
|   |   | 
|  02.06.2010, 14:00 | #8 | 
| Senior Member Регистрация: 25.12.2009 
					Сообщений: 106
				 |   
			
			на данный момент это выглядит так Код: $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'USER_FUNCTION:fileadmin/404.php:user_pageNotFound->pageNotFound'; Код:   define(LOGIN_URL, "http://astroelite.de/login.html");
  define(NOTFOUND_URL, "http://astroelite.de");
  
  
  class user_pageNotFound {
    function pageNotFound($param, $ref) {
      if (count($param["pageAccessFailureReasons"]["fe_group"])) {
        header("HTTP/1.0 403 Forbidden");
        $GLOBALS['TSFE']->fe_user->setKey('ses', 'redirect', $_SERVER['REQUEST_URI']);
        $GLOBALS['TSFE']->storeSessionData();
        $url = LOGIN_URL;
      } else
        $url = NOTFOUND_URL;
      print file_get_contents($url);
    }
  }забыл пояснить $GLOBALS['TSFE']->fe_user->setKey('ses', 'redirect', $_SERVER['REQUEST_URI']); $GLOBALS['TSFE']->storeSessionData(); для того чтоб после авторизации принять эти данные и переадресовать авторизированного пользователя на запрошенную страницу логин у меня свой - берет авторизацию и данные пользователя по wsdl с центрального сервера, так что для вашего случая всего придется переделывать стандартный логин | 
|   |   | 
|  | 
| 
 | 
 | 
|  Похожие темы | ||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение | 
| Подменю для главной страницы сайта | ksevelyar | Общие вопросы | 11 | 17.04.2012 13:21 |