Почему не работает переадресация в apache?

Ссылка скопирована
1 ответ

В корневой директории лежит html страничка, настроено что со всех url переадресация в корень.
Хочу добавить чтобы если в url было слово "shop" - работала переадресация в корень директории site.ru/shop/
Но добавив строчку: ^shop/(.+)$ shop/ [R=301,L]
работает переадресация, но слетают все стили.

Вот как полностью выглядит .htaccess

<IfModule mod_rewrite.c> 	RewriteEngine On 	RewriteRule ^shop/(.+)$ shop/ [R=301,L] 	RewriteBase / 	RewriteRule ^index.html$ - [L] 	RewriteCond %{REQUEST_FILENAME} !-f 	RewriteCond %{REQUEST_FILENAME} !-d 	RewriteRule . / [L,R=301] </IfModule>

<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^shop/(.+)$ shop/ [R=301,L] RewriteBase / RewriteRule ^index.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . / [L,R=301] </IfModule>

Дополнительно:

Мало инфы. Скинь скрин обращения к ресурсам из F12, что бы увидеть как он изменил пути до стилей.

  • никак пути не меняет, просто файлы тоже переадресует на индексную страницу.
  • RuRoman, Возможное решение base
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Антон С. Ответ

    Проблемы с переадресацией в Apache могут быть вызваны различными причинами, и для их решения необходимо провести некоторые действия.

    1. Проверьте конфигурационный файл .htaccess: Убедитесь, что в вашем .htaccess файле правильно настроены правила переадресации. Например, если вы используете модуль mod_rewrite, убедитесь, что RewriteEngine включен и правила переадресации написаны правильно.

    2. Проверьте настройки виртуального хоста: Если вы используете виртуальный хост для вашего сайта, убедитесь, что в нем правильно настроены правила переадресации. Проверьте файл конфигурации виртуального хоста и удостоверьтесь, что все правила написаны правильно.

    3. Проверьте модуль mod_rewrite: Убедитесь, что модуль mod_rewrite включен в вашем Apache сервере. Вы можете проверить это, выполнив команду `a2enmod rewrite` в консоли.

    4. Проверьте ошибки в логах: Просмотрите логи Apache, чтобы увидеть возможные ошибки, которые могут помочь вам определить причину проблемы с переадресацией.

    Пример использования модуля mod_rewrite для переадресации в Apache:

    RewriteEngine On
    RewriteRule ^oldpage$ /newpage [L,R=301]

    RewriteEngine On RewriteRule ^oldpage$ /newpage [L,R=301]

    Этот пример перенаправляет запросы с URL "/oldpage" на "/newpage" с статусом 301 (постоянное перенаправление). Убедитесь, что вы правильно настроили правила переадресации и проверьте все вышеперечисленные шаги для решения проблемы с переадресацией в Apache.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно