TYPO3: 404 для страницы с ограниченным доступом вместо формы входа - PullRequest
8 голосов
/ 12 июля 2011

У меня есть ссылка, указывающая на страницу с ограниченным доступом. Когда я получаю доступ к ссылке непосредственно в состоянии выхода из системы, ее перенаправляют на 404. На самом деле она должна перенаправить в форму входа.

Я пытался:

config {
   typolinkLinkAccessRestrictedPages=PAGE_ID 
   typolinkLinkAccessRestrictedPages_addParams = &return_url=###RETURN_URL###&pageId=###PAGE_ID###
   }

Не работает.

Также я попробовал плагин перенаправления статуса входа в систему, бесполезно.

Кто-нибудь знает, как это сделать? Я использую TYPO3 версии 4.4.8.

Ответы [ 6 ]

2 голосов
/ 18 ноября 2011

Поскольку это все еще без ответа, это помогает?

# Check if user is logged in:
[usergroup = *]
# do something
[else]
page.config >
page.config.additionalHeaders = Location: http://www.yourdomain.org/login.html
[end]

Я недавно отправил это в другие вопросы , и мне пришло в голову, что это может быть подходящим обходным решением для вашего исследования,

Найдено здесь

1 голос
/ 21 сентября 2015

Fe_login не может в одиночку сделать это ...

Выполните следующие действия ::

  1. Установить расширение "pagenotfoundhandling" после входа в систему felogin конфигурации.
  2. Настройка страницы 403 в качестве страницы входа в конфигурацию расширения "pagenotfoundhandling".

Затем, когда вы пытаетесь получить доступ к «странице с ограниченным доступом», «pagenotfoundhandling» будет перенаправлять на страницу входа, а затем дескриптор pagenotfoundhandling перенаправлять на вновь запрашиваемую страницу. Я проверял это на TYPO3 6.2.14

1 голос
/ 04 июля 2012

Я не уверен, как правильно сделать перенаправление, но, возможно, немного фона будет полезно.

typolinkLinkAccessRestrictedPages взаимодействует только с генерацией ссылок.Таким образом, везде, где у вас есть ссылка на страницу с ограниченным доступом, вы должны получить ссылку, которая указывает на страницу «Идентификатор страницы».Я подозреваю, что вы используете свой pid для входа вместо идентификатора PAGE, который, как мне кажется, должен работать, но я не использовал эту особенность.У меня есть typolinkLinkAccessRestrictedPages = NONE, в котором отображаются все ссылки, связанные с правильным URL-адресом, но только пользователи, вошедшие в систему, успешно загрузят эти страницы.

Если кто-либо, не войдя в систему, использует закладку длядоступ к странице с ограниченным доступом, либо они щелкают по одной из этих ссылок, либо напрямую вводят адрес, либо что-то еще, они попадают в обработку 404 TYPO3 (с сообщением об ошибке: ID не была доступной страницей).Чтобы изменить то, как TYPO3 обрабатывает эти ошибки, вам нужно изменить то, что делает TYPO3 с помощью этого параметра в localconf.php:

$TYPO3_CONF_VARS["FE"]["pageNotFound_handling"]

Я не знаю, есть ли чистый способ просто автоматически перенаправить на страницу входабез взлома pageNotFound_handling.

Что касается решения Typoscript, оно не будет работать для моего сайта, потому что триггер не в том, вошел ли кто-то в систему (часто они не будут входить в систему) -- триггер для моего сайта пытается получить доступ к защищенной странице, когда вы не вошли в систему. Я не хочу, чтобы он перенаправлял всех , кто не вошел в систему, потому что для многих страниц не требуетсялюбой логин.

0 голосов
/ 06 января 2017

Полное решение: 1. сначала в typo3conf / LocalConfiguration.php вы должны добавить:

'FE' => [
        'pageNotFound_handling' => 'REDIRECT:/login/',
        "pageNotFound_handling_statheader" => 'HTTP/1.1 404 Not Found',
         ...
],

, затем добавьте в typoscript:

'

config {typolinkLinkAccessRestrictedPages = YOUR_LOGIN_PAGE_ID typolinkLinkAccessRestrictedPages_addParams = & return_url = ### RETURN_URlo_d_id_id_in_id_###### #*

'

0 голосов
/ 03 сентября 2014

И я нашел другой обходной путь, который выглядит так, как будто он должен работать нормально.

# pages and subpages starting at 123 and 321 are restricted
[PIDinRootline = 123,321] && [loginUser = ]
    page.headerData.666 = TEXT
    page.headerData.666 {
        data = getIndpEnv:TYPO3_REQUEST_URL
        wrap = <meta http-equiv="refresh" content="0; URL=/passwort/?referer= | " />
    }
[global]

Важное замечание : Не ограничивайте всю страницу, только все содержимое страницы.В противном случае RealURL вызовет обработчик 404.

В настоящий момент page.config.additionalHeaders (как используется @Mateng) не поддерживает stdWrap, хотя вы не можете добавить реферер для перенаправления на нужную страницу после входа в систему (см. TYPO3 Forge и голосуйте за запрос функции).

0 голосов
/ 03 сентября 2014

Поскольку, похоже, нет правильного решения для такого поведения TYPO3, я использую следующий обходной путь с RealURL.

  1. Создание страницы 404 в TYPO3
  2. установите для сегмента Speaking URL значение " 404-error " и проверьте Переопределить весь путь к странице
  3. Добавить текст, описывающий происходящее (т. Е. «Страница не существует или ограничена, войдите в систему»)
  4. Добавить плагин felogin на эту страницу и скрыть его при входе пользователей в систему
  5. Установить [FE][pageNotFound_handling] = /404-error/ в инструменте установки

Эта 404-ошибка страница отображается каждый раз, когда пользователь запрашивает страницу, которую ему либо не разрешают видеть, либо страницу, которая не существует. Когда пользователь использует форму входа на странице, он сразу же после входа найдет нужный контент, потому что URI вообще не изменился (если для плагина fe_login не настроено перенаправление).

...