1) Требуется создание автоматической транслитерации для ЧПУ.
Какие есть способы?
2) Плюсы и минусы автотранслитерации. Вши соображения.
Какие есть способы?
2) Плюсы и минусы автотранслитерации. Вши соображения.
15.10.2010 17:52:28
1) Требуется создание автоматической транслитерации для ЧПУ.
Какие есть способы? 2) Плюсы и минусы автотранслитерации. Вши соображения. |
|
|
|
15.10.2010 20:12:03
вполне неплохо работает автоматическая, если элементы добавляются через админку.
А вот если скриптом или работает обмен с 1С, то всё - пишите свою на обработчиках |
|
|
|
17.10.2010 21:32:35
Вместо ссылок вида
-Решение- 1. Создание поддиректорий Самый простой способ - это создать для каждого раздела/статьи поддиректорию и поместить туда файл index.php. Использовать данный метод имеет смысл на сайтах с небольшой структурой. 2. Обработка 404 ошибки В файл .htaccess пишем: ErrorDocument 404 /404.php Эта строка указывает серверу перенаправить запрос на скрипт /404.php, если запрошенный файл не был найден. Когда пользователь наберет несуществующий адрес Однако страница 404 будет выдавать браузеру заголовок "HTTP/1.1 404 Not Found", а страницы с таким заголовком не индексируются поисковиками, поэтому в начале файла 404.php пишем: header("HTTP/1.1 200 OK"); Минусов у данного способа два: а) нельзя посылать на несуществующий URL данные методом POST б) Лог ошибок сервера будет забит (необходимо либо отключить ведение лога, либо периодически его чистить). 3. Модуль Apache mod_rewrite В файле .htaccess с помощью регулярных выражений прописываются правила, по которым Apache должен сделать соответствующие перенаправления. Например, RewriteEngine On RewriteBase / RewriteRule ^catalog/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)/?$ catalog/list.php?SECTION=$1&PRODUCT=$2 Каждый запрос Apache будет сопоставлять с шаблоном '^catalog/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)/?$' и в случае совпадения (например, пользователь набрал 4. Директива FilesMatch В .htaccess пишем: Action throw /handler.php <FilesMatch "^([^\.]+)$"> ForceType throw </FilesMatch> Теперь запросы, удовлетворяющие маске "^([^\.]+)$" (все запросы, кроме тех, что содержат точку) будут перенаправляться на скрипт handler.php. Маски для файлов можно задать и другие, разумеется. Этот способ позволяет передавать данные методом POST. |
||||
|
|
|||