За последние 24 часа нас посетили 17774 программиста и 1650 роботов. Сейчас ищут 819 программистов ...

Настроить .htaccess во втором каталоге

Тема в разделе "Настройка веб-сервера", создана пользователем Ivan707, 30 апр 2023.

Метки:
  1. Ivan707

    Ivan707 Активный пользователь

    С нами с:
    15 ноя 2014
    Сообщения:
    8
    Симпатии:
    0
    Добрый день.. Подскажите пожалуйста! Помогите
    Есть два файла .htaccess. Первый - это корень сайта на хостинге. В ней .htaccess с таким кодом:
    Код (Text):
    1.  
    2. <IfModule mod_rewrite.c>
    3.  
    4. RewriteEngine On
    5. RewriteRule ^(.*) public/$1 [L]
    6.  
    7. </IfModule>
    И папка public в корне сайта. В ней файл .htaccess с кодом:
    Код (Text):
    1.  
    2. <IfModule mod_rewrite.c>
    3.  
    4. RewriteEngine On
    5.  
    6. RewriteCond %{SERVER_PORT} !^443$ [OR]
    7. RewriteCond %{THE_REQUEST} "^\S+ /(index\.php|public/)"
    8. RewriteRule ^index\.php|(.*) https://mygorod.ru/$1 [R=301,L]
    9.  
    10. RewriteCond %{REQUEST_FILENAME} !-f
    11. RewriteCond %{REQUEST_FILENAME} !-d
    12. RewriteRule (.*) index.php?$1 [L,QSA]
    13.  
    14. </IfModule>
    Все управление сайтом происходит во второй папке public в файле index.php.
    Подскажите пожалуйста, где почитать или как добавить следующие редиректы во второй htaccess:

    1. Перенаправление с сайта с www на сайт без www:
    Код (Text):
    1.  
    2. RewriteCond %{HTTP_HOST} ^www.mygorod\.ru$ [NC]
    3. RewriteRule ^(.*)$ https://mygorod.ru/$1 [R=301,L]
    2. Убрать повторяющиеся слэши в URL
    Код (Text):
    1.  
    2. RewriteCond %{REQUEST_URI} ^(.*?)\/{2,}(.*?)$
    3. RewriteRule . %1/%2 [L,R=301]
    4. RewriteCond %{THE_REQUEST} //
    5. RewriteRule .* /$0 [R=301,L]
    3. Убирать слэш в конце URL
    Код (Text):
    1.  
    2. RewriteCond %{HTTP_HOST} (.*)
    3. RewriteCond %{REQUEST_URI} /$ [NC]
    4. RewriteRule ^(.*)(/)$ $1 [L,R=301]
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    Ошибка в том, что у тебя корень сайта выше папки public. Корень должен быть в public! Это настраивается на уровне httpd.conf в Apache, а не на уровне .htaccess.