2010-11-23 5 views
0

Я ищу ваши рекомендации о том, каким будет лучший способ реализации дружественных URL-адресов.Как настроить дружественные URL-адреса

В настоящее время я перенаправляю все 404 запросов в папки или файлы, которые не существуют в index.php. index.php считывает строку запроса и делает вызов базы данных, чтобы увидеть, если URL-адрес находится в таблице page_urls затем на основе типа страницы извлекает содержимое и т.д. и т.п.

.htaccess, содержит следующие строки:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php [L]

Есть ли более «умный» способ сделать это, пожалуйста? Спасибо.

спасибо.

+0

Это слишком широкий вопрос. Вы действительно должны описать больше того, что вы подразумеваете под «умным». – casablanca 2010-11-23 22:39:23

+0

Одна мысль об этом заключается не в механизме перезаписи URL: подумайте о том, какие коды статуса HTTP вы отправляете обратно. Если вы находите страницу в БД, которая, по вашему мнению, является желаемой, перманентная переадресация (301) на канонический URL этой страницы, вероятно, лучше всего. Или, если вы хотите отправить сообщение о том, что ресурсы на неудачных URL-адресах действительно исчезли, верните 404 (возможно, включая содержимое страницы, которое, возможно, будет полезно для потерянного человека). Если вы возвращаете нормальный ответ (200, «ОК»), вы говорите, что все в порядке продолжать использовать эти (разбитые) URL-адреса. – 2010-11-24 01:59:19

ответ

1

Лучший способ я нашел, чтобы сделать что-то вроде следующего:

RewriteEngine on 
RewriteRule ([a-zA-Z0-9_-]*)\.html index.php?page=$1 [L]