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

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

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

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

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

Спасибо!

1 ответ

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

1: Вы хотите перенаправить:

А) realURL Перенаправляет в модуле Info:

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

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

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

Зайдите в модуль Info и выберите в заголовке "Управление RealURL", а затем выберите "Показать перенаправления".

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

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

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

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

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

C) Вы пишете две строки в свой.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.

Другие вопросы по тегам