Typo3 7.x: Как перенаправить все обращения с подстраниц страницы на саму страницу?

В настоящее время я работаю над ONEPAGE в TYPO3 и поэтому собираю все содержимое всех подстраниц страницы «Start», чтобы вывести его вместе на странице «Start».

Теперь у меня есть ситуация, когда кто-то знает URL-адрес подстраницы страницы «Пуск», тогда эта страница выводится обычным способом без подключения к ONEPAGER, что мне не нужно.

Итак, есть ли у кого-нибудь представление о том, как перенаправить все обращения с подстраницы «Пуск» на саму страницу «Пуск».

Я знаю, что этого можно достичь с помощью перезаписи htaccess / Apache, но я ищу общее решение, например собственными средствами TYPO3.

Спасибо!


person Steven    schedule 19.05.2016    source источник
comment
Вы нашли решение?   -  person András Ottó    schedule 14.06.2016


Ответы (1)


Этот вопрос зависит от ваших потребностей. Есть несколько способов решить эту проблему.

1: вам нужна переадресация:

A) realURL Redirects в модуле Info:

Есть способ написать правила перенаправления для точных URL-адресов внутри бэкэнда TYPO3. Было бы удобно, если бы редактор имел некоторую свободу устанавливать эти правила.

Преимущество: редактор может иметь возможность устанавливать URL-адреса. Для этого не нужно никакого программирования.

Недостаток: у вас нет регулярного выражения, вам нужно устанавливать каждый URL напрямую. ЕСЛИ вы измените заголовок, перенаправление больше не будет работать.

Зайдите в модуль Info и выберите в строке заголовка «RealURL Management», а затем опцию Show the «Redirects».

Б) Использование encodeSpURL_postProc и decodeSpURL_preProc в RealURLConfiguration.php.

С помощью этой техники вы можете управлять своими «входящими» и «исходящими» URL-адресами. Он используется, если вы хотите сократить URL-адреса.

Вот пример , но вы наверняка можете найти больше в Google .

Преимущество: вы можете создавать гибкие правила регулярных выражений.

Недостаток: вам нужно написать код PHP, и эта логика будет запускаться для каждой исходящей ссылки, поэтому, если у вас много ссылок для преобразования, это не самый быстрый вариант для выбора.

В) Вы вводите две строки в свой .htaccess.

Итак, дело в том, что если у вас есть четкое правило, нужно перезаписывать больше URL и навсегда. И если у вас есть доступ к вашему файлу .htaccess, я настоятельно рекомендую вам его использовать. Если у вас нет более сотни перенаправлений или определенных перенаправлений, это лучшее место для написания вашего правила. Он запускается перед любым кодом PHP, поэтому это определенно самое быстрое решение.

Преимущество: вам не нужно писать так много кода. Это лучший способ перенаправить несколько URL-адресов, а производительность выше, чем у любого PHP-кода.

Недостаток: только если у вас нет доступа к файлу .htaccess, потому что тогда вы не сможете этого сделать. В противном случае для многих редиректов лучше поместить перенаправления в httpd conf.

2: 404 из-за неправильного URL.

Вы можете обрабатывать страницы так, как если бы они были «неправильными URL-адресами», например www.yourpage.com/it_is_a_not_existing_page/. Для решения этих проблем рекомендуется иметь страницу 404.

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

Я рекомендую вам подумать о решении 404, а если нет, то использовать .htaccess.

person András Ottó    schedule 20.05.2016
comment
Привет, Андраш, большое спасибо за полный ответ с несколькими решениями. Я искал способ добиться автоматической перезаписи URL-адреса, например. путем установки определенного макета фона в настройках страницы, который вызовет перенаправление всех подстраниц на саму страницу. Я предполагаю, что ваше второе предложение (B) может быть тем, у которого есть шансы осуществить это. Когда у меня будет время, я попробую. Еще раз спасибо. - person Steven; 01.07.2016