Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554

Не срабатывает переадресация при запросе к папке

07.09.2018, 10:50. Показов 872. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть у меня сайт, у которого в отдельной папке живет форум. сам сайт живет в папке, которая у апача является DocumentRoot (/var/www/html). А форум живет в папке /var/www/forum. Чтобы апач показывал форум, в его настройки был добавлен файл forum.conf с таким содержимым:
Code
1
2
3
4
Alias /forum /var/www/forum
<Directory /var/www/forum>
    Allow from All
</Directory>
подключил я к сайту ssl-сертификат и в .htaccess прописал переадрессацию с http на https. Итоговый .htaccess выглядит так (комментарии убрал, пару строк разъяснений добавил):
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<IfModule mod_rewrite.c>
    RewriteEngine on
 
# это мои три добавленные строки - переадресация с на и запросов приехавших не на мое доменное имя:
    RewriteCond %{HTTP_HOST} !^wifi-hotspot\.zp\.ua [OR]
    RewriteCond %{HTTPS} !on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
 
# это стандартные строки, вписанные в файл разработчиками phpbb 
    RewriteBase /forum/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) app.php [QSA,L]
 
</IfModule>
И теперь про то, что мне не удается. Если обращаться к форуму с указанием в адресной строке чего-либо после /forum/, например, http://имя_домена/forum/index.php, то все срабатывает как надо - происходит пересылка на тот адрес, который и нужно (https://имя_домена/forum/index.php). Но если обратиться к самой папке /forum/ (вот так: http://имя_домена/forum/), то переадресация происходит непосредственно на сам сайт - http://имя_домена/

Что я сделал не так?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.09.2018, 10:50
Ответы с готовыми решениями:

Переадресация при get запросе из неправильного в правильный
Есть запрос типа: http://Bobr.site.ru/?page=want2Bobr&amp;code=SecretKey?nickname=Generaliv Нужен его переадресовать на: ...

Переадресация на URL при POST запросе
using System; using System.Collections.Generic; using System.Text; using System.Collections.Specialized; using System.Net; using...

При любом поисковом запросе происходит переадресация на go.mail.ru + большое количество рекламы в браузере
Здравствуйте! Как написано в теме, при любом поиске происходит переадресация на сайт go.mail.ru . Началось недавно. А вот лишняя реклама на...

11
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
07.09.2018, 11:42
Ваш алиас при запросе не распознается, как полноценный каталог. Перенесите форум в /var/www/html/forum, раз уж используете внедренный в сайт независимый форум.
1
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
07.09.2018, 12:02  [ТС]
переделал. без разницы
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
07.09.2018, 12:25
Попробуйте убрать условие RewriteCond %{REQUEST_FILENAME} !-d или переименовать файл точки входа в index.php.
1
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
07.09.2018, 12:50  [ТС]
Цитата Сообщение от Phantom-84 Посмотреть сообщение
убрать условие
попробовал, все равно пересылает на /
Цитата Сообщение от Phantom-84 Посмотреть сообщение
переименовать файл точки входа в index.php
честно говоря, опасаюсь, это ведь один единственный файлик от всей огромной кучи файлов phpbb, возможно, там все как-то завязано и с другими...

зы. уточнение
если я обращаюсь к форуму по адресу https://имя_домена/forum/ (то есть по шифрованному протоколу), то открывается именно форум, а не / (сам сайт). то есть, при таком обращении не работает, как я понимаю, мой "первый" блок правил, вот этот:
Code
1
2
3
    RewriteCond %{HTTP_HOST} !^wifi-hotspot\.zp\.ua [OR]
    RewriteCond %{HTTPS} !on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
я пробовал в нем в правиле (RewriteRule) добавлять L, чтобы в конце стало [R=301,L] (как я почитал, ключ L означает, что дальнейшая обработка запроса прерывается после этого редиректа). И как я понял, при таком варианте ([R=301,L]) вся последующая часть правил не работает. Но и при таком варианте когда я запрашиваю http://имя_домена/forum/, все равно прилетаю на /... И как мне кажется, проблема не в правилах от разработчиков phpbb, а именно в моих
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
07.09.2018, 13:06
В показанном фрагменте смущает вот это:
Code
1
RewriteCond %{HTTP_HOST} !^wifi-hotspot\.zp\.ua [OR]
Code
1
https://%{HTTP_HOST}
Это обычно делается для изменения имени хоста, чего у вас не происходит. Лучше напишите в правиле имя хоста явно.

Добавлено через 8 минут
Цитата Сообщение от Dmitry Посмотреть сообщение
честно говоря, опасаюсь, это ведь один единственный файлик от всей огромной кучи файлов phpbb, возможно, там все как-то завязано и с другими...
Обычно файл точки входа можно переименовывать без проблем (я же не советую вам переименовывать другие файлы). Если, конечно, у вас не используется имя файла app.php в адресах. Вообще странное название. Обычно для файла единой или главной точки входа по умолчанию используется имя index.php. Поинтересуйтесь, app.php - это оригинальное или уже кем-то измененное имя применительно к phpbb.
1
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
07.09.2018, 13:11  [ТС]
Цитата Сообщение от Phantom-84 Посмотреть сообщение
Лучше напишите в правиле имя хоста явно.
это да, я согласен, что нужно указать свое имя домена. когда создавал эту тему, выбрал одно из нескольких вариантов правила. реально их там по очереди пробовались три разных:
Code
1
2
3
#   RewriteRule ^(forum/.*)$ https://wifi-hotspot.zp.ua/$1 [R=301,L]
#   RewriteRule ^(.*)$ https://wifi-hotspot.zp.ua/forum/$1 [R,L]
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
также, при тестах правило про "чужое" имя хоста мною отключалось совсем (коментировалось), но все также безрезультатно...

Добавлено через 4 минуты
Цитата Сообщение от Phantom-84 Посмотреть сообщение
Обычно файл точки входа можно переименовывать без проблем (я же не советую вам переименовывать другие файлы). Если, конечно, у вас не используется имя файла app.php в адресах. Вообще странное название. Обычно для файла единой или главной точки входа по умолчанию используется имя index.php. Поинтересуйтесь, app.php - это оригинальное или уже кем-то измененное имя применительно к phpbb.
это файл (app.php) - именно от разработчиков phpbb. я его не переименовывал, не создавал, не редактировал. кроме того - в папке с форумом имеется также и файл index.php (тоже, "родной", от разработчиков). правила переадресации на app.php, присутствующие в .htaccess - ихние, "родные", как идут в архиве с инсталятором phpbb...
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
07.09.2018, 13:30
Тогда в любом случае вы не смогли бы переименовать без конфликтов. С двумя точками входа уже сложнее (если, конечно, одна из них них не является какой-либо заглушкой для другой) - нужно знать их назначение.

Добавлено через 4 минуты
Вероятно, при наличии условия RewriteCond %{REQUEST_FILENAME} !-d запрос по адресу /forum/ будет уходить в index.php, в котором и скрывается источник описанного вами незапланированного перенаправления.

Добавлено через 6 минут
Цитата Сообщение от Dmitry Посмотреть сообщение
попробовал, все равно пересылает на /
Возможно, это единообразный функционал обеих точек входа. Может, в настройках самого форума нужно тоже где-то указать базу /forum/, а пока вы этого не сделаете, будет происходить перенаправление на предполагаемую по умолчанию базу /.
1
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
07.09.2018, 14:07  [ТС]
вкинул в папку с форумом "родной" htaccess, в том виде как его в архив с инсталятором кладут сами разработчики phpbb.
на форуме установлен sitemap.xml (то ли плагин, то ли расширение - не помню, да и не важно, имхо, за исключением того, что ему для работы нужен реврайт). попытался обратиться к нему - получил "облом" (не найдено). в файле изменил "базу" на /forum/. сайтмап отработал как надо.

далее...
"своих правил" про https я еще в htaccess не добавлял, и решил в таком состоянии попробовать обратиться на адрес http://мой_домен/forum/. Результат плачевный - я снова прилетел в / (при чем на https). возникло предположение, что раз в htaccess форума правил переадресации еще нет, может срабатывают те, что живут в htaccess непосредственно в корне сайта?

Добавлено через 5 минут
дальше больше...
не добавляя никаких вообще правил про https в htaccess форума попробовал обращаться с параметрами в адресной строке, идущими после /forum/, например, http://мой_домен/forum/search.... ive_topics (т.е., по http). В итоге идет переадресация на адрес https://мой_домен/forum/search... ive_topics - на https!!! сижу, офигеваю..
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
07.09.2018, 14:24
Цитата Сообщение от Dmitry Посмотреть сообщение
не добавляя никаких вообще правил про https в htaccess форума попробовал обращаться с параметрами в адресной строке, идущими после /forum/
В настройках хостинга нет никакой переадресации? И это тоже возможно:
Цитата Сообщение от Dmitry Посмотреть сообщение
может срабатывают те, что живут в htaccess непосредственно в корне сайта?
если они там есть, то срабатывают.
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
07.09.2018, 14:29  [ТС]
Цитата Сообщение от Para bellum Посмотреть сообщение
В настройках хостинга нет никакой переадресации?
не, это vps с установленным (мной) по дефолту apache
Цитата Сообщение от Para bellum Посмотреть сообщение
если они там есть, то срабатывают.
есть...
ясно. буду с ними колдовать...
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
09.09.2018, 21:02  [ТС]
Цитата Сообщение от Dmitry Посмотреть сообщение
буду с ними колдовать...
помогло добавление вот таких условия и правила в htaccess в корне сайта:
Code
1
2
    RewriteCond %{REQUEST_URI} ^forum
    RewriteRule ^ - [L,QSA]
имхо, важно, эти две строки были добавлены ПЕРВЫМИ в наборе правил переадрессации.
в итоге htaccess, размещенный в корне сайта, прекратил обработку этих запросов, и всю переадресацию выполняет htaccess, размещенный в папке forum ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.09.2018, 21:02
Помогаю со студенческими работами здесь

Не срабатывает переадресация
При открытии сайта без авторизации должна открываться страница авторизации. А в итоге не срабатывает это. На локальном сервере открываетсся...

Переадресация для гостевого посетиля на произвольную http страницу. Не срабатывает
Хтассес реврайт не предлагать, не пашет с SLogin if ($this-&gt;user-&gt;get('guest')): header(&quot;Location:...

Не срабатывает свойство в медиа запросе
Есть медиа запрос @media only screen and (max-width : 992px) .button font-size: 18px .buttoncase grid-column: 1 / 4 ...

Почему Python-скрипт в одной папке срабатывает, а в другой нет?
Есть скрипт для Blender, по пути C:\\skeletonClassic.blend срабатывает, а там где все аддоны-скрипты устанавливаются по умолчанию выдает...

Переадресация на non .php, когда имя файла php аналогично папке
На сайте есть папка site.com/dir и есть файл site.com/dir.php При переадресации выдает ошибку доступа. Помогите пофиксить ;) #php...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru