Почему не работает переадресация в apache?
В корневой директории лежит 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, что бы увидеть как он изменил пути до стилей.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Проблемы с переадресацией в 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]
Этот пример перенаправляет запросы с URL "/oldpage" на "/newpage" с статусом 301 (постоянное перенаправление). Убедитесь, что вы правильно настроили правила переадресации и проверьте все вышеперечисленные шаги для решения проблемы с переадресацией в Apache.