• Как правильно убрать .html в конце URL?

    • Просмотров 5770

    Здравствуйте! Прошу вашей помощи. Необходимо было спрятать в адресной строке расширения файлов (html), нашёл вашу статью "Как убрать .html в конце URL?" Ответ: Обратный редирект с site.com/page.html на site.com/page.

    RewriteEngine On
    RewriteBase /
    RewriteRule (.*)\\\\.html$ $1

    После сохранения файла .htaccess на сервер с данным содержимым, расширения спрятались, но вместе с тем перестали работать сами страницы.
    То, есть например, кликаю на главной странице на ссылку, которая должна вести на файл info.html, страница загружается в адресной строке site/info без html и сервер выдаёт ошибку и сообщает, что такой страницы не существует.
    Как вернуть всё обратно?
    Удаление файла .htaccess не помогло. Страницы сайта, которые я грузил, когда файл .htaccess был на сервере, теперь не работают и пытаются до сих пор грузиться без расширения. Хотя файла .htaccess на сервере уже нет.
    Сайт не работает((( - это катастрофа, прошу помочь. 

    ответы (4)

    Закоментируйте правило редиректа, вот так: 

    #RewriteRule (.*)\\\\\\\\.html$ $1
    Комментариев: (2)

    Благодарю! А как же всё таки правильно скрыть html в адресной строке?

    Попробуйте так

    RewriteRule (.*)\.html$ $1

    Местная система комментариев добавляет лишние слеши. 

    Вот так надо: https://pastebin.com/2qBrRKpL

    Возможно это какой то не нормальный кэш. После удаления .htaccess все должно было вернуться на место. А по вопоросу убрать .html в конце адреса честно говоря не понимаю как тут редирект поможет. Если сайт на HTML то нужно делать так например для страницы site.ru/about.html создать каталог /about и перенести туда файл about.html, затем переименовать его в index.html и уже после этого делать редиректы. Хотя в идеале лучше переписать ссылки без .html в конце.

     @banksy
    RewriteEngine on
    RewriteBase /
    RewriteCond %{THE_REQUEST} ^{3,9}\ /(<^.>+)\.html\ HTTP
    RewriteRule ^(<^.>+)\.html$ site.ru/$1 
    RewriteCond %{REQUEST_URI} !(\.<^./>+)$
    RewriteCond %{REQUEST_fileNAME} !-d
    RewriteCond %{REQUEST_fileNAME} !-f
    RewriteRule (.*) /$1.html
    site.ru замени на домен твоего сайта.

    В .htaccess. Обращение к /about.html перенаправляет на /about. Сам этот вариант использую, и вам советую.
    Ответ написан более года назад
    Ссылка: https://toster.ru/q/78158
Мы старались для Вас!
Оцените статью
или
Расскажите о ней

Юзеры (11) оценили на 2.9 из 5

Рейтинги хостинг-провайдеров по задачам сайта
Июля
Бесплатный тест
ОС
Технологии
Региональные