Можно ли создать дружественный для поисковых систем URL-адрес из этого пользовательского URL-адреса ColdFusion CMS?

Я унаследовал пользовательское приложение ColdFusion CMS. URL, которые он создает, ужасны. Совсем не подходит для SEO или читабельности в этом отношении. Пример URL в этой CMS:

http://www.mysite.com/Index2.cfm?a=000003,000010,000019,001335

По сути, каждый уровень иерархии хранится в базе данных на основе этой длинной строки значений, разделенных запятыми. Таким образом, в случае примера, который я использовал, эта конкретная страница находится на 4 уровнях в иерархии CMS.

В основном, я хотел бы видеть формат, подобный этому

http://www.mysite.com/level-1/level-2/level-3/level-4

Это возможно? Любая помощь будет принята с благодарностью. Что бы это ни стоило, мы используем ColdFusion 6 в настоящее время, но в ближайшем будущем обновим до 8.

1 ответ

Прежде всего, хотите ли вы иметь index.cfm в URL? Как: http://www.mysite.com/index.cfm/level-1/level-2/level-3/level-4? Если нет, то вам нужно будет переписать, чтобы удалить index.cfm, но все же позволить CF обрабатывать страницу. Ваш.htaccess будет выглядеть примерно так:

RewriteEngine On

# If it's a real path, just serve it
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]

# Redirect if no trailing slash
RewriteRule ^(.+[^/])$ $1/ [R=301,L]

# Rewrite URL paths
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^([a-zA-Z0-9/-]+)$ /index.cfm%{REQUEST_URI} [PT]

Следующим шагом вам нужно будет "поймать" URL-адреса и предоставить правильные страницы на основе SEO-дружественных URL-адресов. Вы можете получить входящий URL-адрес из переменной CGI.path_info. Трудно понять, как должен выглядеть ваш код, не зная, как он в настоящее время обрабатывает эти переменные URL, но, по сути, у вас есть какая-то функция отображения, которая захватывает дружественные для SEO имена и подставляет цифры для захвата контента.

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

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