.htaccess должен перенаправить на указанный сайт, но перенаправляет его на некую бессмысленную-wtf-страницу.Зачем? - PullRequest
0 голосов
/ 18 февраля 2019

Привет, ребята, так что сегодня я снова здесь с новой проблемой, и с проблемой приходит вопрос (и, надеюсь, ответьте, ха-ха)

Верно, поэтому я скачал PHP и Apache 2.4 .Оба работают отлично, у меня установлен PHP локально (C:\php)), и поэтому у меня есть Apache (C:\Apache24), работающий в качестве службы Windows. Все файлы .php работают при запуске с localhost, отображаются корректно и .htaccess работал до перенаправление Я наконец-то решил это сделать.

И вот, когда произошла странная вещь

Я поместил этот код в свой .htaccess в корневом каталоге:

Redirect 301 / / FormTest / register /

( Да, я настроен на использование index.php в качестве index.html - документ корневого каталога по умолчаниюи да, FormTest / Register существует, и да, я попытался поставить его как /FormTest/register/index.html тоже с тем же результатом для тех из вас, кто спросил бы:) )

Итак, давайте перейдем квещь: Это перенаправило бы меня (примерно через 7 секунд (?)) на

http://localhost/FormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/registerFormTest/register

(извините за то, что я долго, это то, что я действительно получил)

Итак, на что, черт возьми, он перенаправил меня, почему он действует так - Инадеюсь, как это решить: D

*I tried researching for answers, no found. I am thinking of => It's taking pretty long so it "requests" to redirect multiple times, when it actually tried to do all those (idk, 7 sec, 7 requests?) redirects, it joins them together and ends up like above*

Заранее спасибо, любая помощь приветствуется!

1 Ответ

0 голосов
/ 18 февраля 2019

Проблема в том, что ваше правило Redirect:

Redirect 301 / /FormTest/register/

не соответствует URL /, оно соответствует любому символу / в начале URL.В частности, вышеприведенное правило предназначено для перенаправления /foo/ на /FormTest/register/foo.

. Вы хотите сказать Apache, что нужно перенаправить только URL / и ничего больше, используйте RedirectMatch ,который позволяет вам сопоставить / как единственный символ в URL ($ является символом регулярного выражения, означающим «конец строки», а ^ означает противоположное, «начало строки»):

RedirectMatch 301 "^/$" "/FormTest/register/"

Имейте в виду, что это не будет перенаправлять /index.html или /index.php на тестовый URL-адрес формы.Вы можете добавить дополнительные правила перенаправления, чтобы исправить это:

RedirectMatch 301 "^/$" "/FormTest/register/"
RedirectMatch 301 "^/index\.html$" "/FormTest/register/"
RedirectMatch 301 "^/index\.php$" "/FormTest/register/"

(Цитаты не являются обязательными.)

...