Я бы хотел переписать URL-адрес (почему? Смотрите этот вопрос ), чтобы вместо того, чтобы пользователи видели такие адреса, как
labouseur.com/course-compilers.html
вместо этого они могут просто видеть и использовать
labouseur.com/course-compilers
(Еще лучше, может быть, я должен реструктурировать это так, чтобы это были курсы / компиляторы.)
Я использую службу общего хостинга на базе Linux для своего веб-сайта, поэтому у меня нет административного контроля над сервером, но у меня есть контроль над .htaccess. Ссылки, которые я читал в Интернете, показались мне менее чем понятными, поэтому я ищу небольшую ясность и совет здесь.
Ответы:
Вы могли бы на самом деле удалить .html из файлов на вашем сервере и установить настройки в htaccess, чтобы они отображались как html-файлы, но это, вероятно, не то, что вы ищете.
Сделай это :
источник
Сначала убедитесь, что в apache есть модуль и что он разрешен в файлах .htacces, затем добавьте:
Ваш пример потребует
Для одноуровневой структуры каталогов и
Для многоуровневой структуры.
Но будь осторожен
Если у вас есть структура
Правила перезаписи в дочерних
.htaccess
файлах будут относиться к их родительской папке, и вы можете попасть в некоторые беспорядочные ситуации цикла перезаписи. Убедитесь, что вы используете,RewriteCond
чтобы остановить их, если вы можете!источник
В дополнение к вышеупомянутым ответам можно использовать
([\w-]+)
Позволяет буквы, цифры с дефисом (-).(.*)
будет переписывать каждый запрос независимо от того, что может нарушить другие следующие правила, вызывающие внутреннюю ошибку сервера при доступе.источник
RewriteRule
образец является улучшением по сравнению с принятым ответом для конкретного примера, приведенного в вопросе, однако он не будет соответствовать более общему случаю, когда имеется более одного отрезка пути, например./path/to/course-compilers
, ВключитеL
флаг, чтобы уменьшить влияние на следующие правила. Хотя(.*)
шаблон является излишне общим, он вряд ли вызовет серьезные проблемы из-за условия, при котором проверяется наличие файла.Вам не нужно использовать файл .htaccess для этого. Просто структурируйте ваши файлы в каталоги, и вместо использования «labouseur.com/course-compilers.html», просто назовите файл index.html и поместите его в каталог под названием «course-compilers». Затем, когда вы указываете на этот каталог, индекс обслуживается по умолчанию, но не будет отображаться в URL. Так что вы можете просто написать свои ссылки как «labourseur.com/course-compilers», и все будет хорошо.
Нет .htaccess требуется.
источник