#.htaccess
#.htaccess
Вопрос:
я пробовал другой код, чтобы преобразовать URL в дружественный URL, но, похоже, он не работает. вот мой код, который недавно был опробован.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
я хотел бы использовать вместо идентификатора дружественный текст, который может быть заголовком страницы.
моя текущая ссылка выглядит следующим образом
http://example.com/website/425199399/
я исключаю ссылку примерно так
http://example.com/website/the-working-class-family-425199399
Спасибо за вашу помощь.
Ответ №1:
Опубликованный вами фрагмент кода даже не пытается реализовать перезапись, которую вы набросали…
Вот версия, которая должна указать вам правильное направление, но вам, безусловно, придется адаптировать ее к нашим потребностям и конкретной ситуации. Таким образом, вы не сможете обойти чтение документации по используемым вами инструментам. Вы обнаружите, что документация модулей apache (ее модуль перезаписи) отличного качества и предлагает действительно хорошие примеры…
RewriteEngine on
RewriteRule ^/?website/. -(d )$ /website/$1 [END]
В случае, если вы получаете внутреннюю ошибку сервера (http status 500), используя приведенное выше правило, есть вероятность, что вы используете очень старую версию http-сервера apache. В этом случае вы увидите четкую подсказку о неподдерживаемом [END]
флаге в файле журнала ошибок вашего http-сервера. Вы можете либо попытаться обновить, либо использовать более старый [L]
флаг, вероятно, в этой ситуации он будет работать так же, хотя это немного зависит от ваших настроек.
Это правило будет работать аналогично в конфигурации хоста http-серверов или внутри файла динамической конфигурации (файл «.htaccess»). Очевидно, что модуль перезаписи должен быть загружен на http-сервер и включен на http-хосте. В случае, если вы используете динамический конфигурационный файл, вам нужно позаботиться о том, чтобы его интерпретация вообще была включена в конфигурации хоста и чтобы он находился в папке хоста DOCUMENT_ROOT
.
И общее замечание: вы всегда должны предпочитать размещать такие правила в конфигурации хоста http-серверов вместо использования динамических файлов конфигурации («.htaccess»). Эти динамические файлы конфигурации усложняют работу, часто являются причиной неожиданного поведения, их трудно отлаживать, и они действительно замедляют работу http-сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет доступа к реальной конфигурации хоста http-серверов (читай: действительно дешевых поставщиков услуг) или для приложений, настаивающих на написании собственных правил (что является очевидным кошмаром безопасности).