Redirect index php: How do I make a redirect in PHP?

Opencart 3 index.php?route=common/home redirect • freelance job for a specialist • category PHP ≡ Client Daniil Den

5 of 5

project complete

  1. publication

  2. open for proposals

  3. terms confirmation

  4. work ongoing

  5. project complete


The project was translated automatically. Show original

The project shown in original language. Translate

Now the main redirect from site.com to site.com/index.php?route=common/home
You have to do the opposite. 
In .htaccess redirect from site.com to site.com/index… not prescribed where it came from is unclear 🙂

Сейчас главная редиректит с site.com на site.com/index.php?route=common/home

Нужно сделать наоборот. 

В .htaccess редирект с site.com на site.com/index… не прописан, откуда он взялся не понятно 🙂

Client’s feedback on cooperation with Aleksandr L.

Opencart 3 index. php?route=common/home redirect

Quality

Professionalism

Price

Availability

Terms


Александр — отличный исполнитель. Сделал все быстро и качественно, всегда на связи. Рекомендую к сотрудничеству как отличного программиста.

Freelancer’s feedback on cooperation with Daniil Den

Opencart 3 index.php?route=common/home redirect

Payment

Task formulation

Requirements

Availability


Всё без проблем, быстро и чётко.
Спасибо замечательному заказчику!

Aleksandr L.

Publish a similar project

The client does not want to make a prepayment? Payment via Safe help avoid possible fraud.

  • Proposals 15
  • Withdrawn 1

date online rating cost time to complete


  1. 1 day200 UAH

    1 day200 UAH

    Здравствуйте! Там проблема в модуле СЕО, его нужно настроить либо подключить. Ссылку на сайт скиньте

  2. 1 day200 UAH

    1 day200 UAH

    Здравствуйте, обращайтесь, уберу!!!
    Здравствуйте, обращайтесь, уберу!!!
    Здравствуйте, обращайтесь, уберу!!!
    Здравствуйте, обращайтесь, уберу!!!

  3. Winning proposal1 day200 UAH

    Winning proposal1 day200 UAH

    Здравствуйте!
    Обращайтесь, сейчас исправлю.
    Opencart — моя специализация.
    ——————

    С уважением,
    Александр

  4. 1 day200 UAH

    1 day200 UAH

    Здравствуйте! Большой опыт работы с Opencart. Готов сразу приступить к работе

    index.php?route=common/home — это дефолтный путь без сео плагина. Исправлю в кратчайшие сроки

  5. proposal concealed by freelancer

  6.  freelancer isn’t working in the service any longer

  7. proposal concealed by freelancer

  8. 1 day200 UAH

    1 day200 UAH

    пишите сдлеаю, пишите сделаю пишите сдлеаю, пишите сделаю пишите сдлеаю, пишите сделаю

  9. 1 day200 UAH

    1 day200 UAH

    оно по умолчанию в опенкарт так.

    если не стоит сеопро. пишите, сделаю вам правильный редирект

  10. proposal concealed by freelancer

  11. proposal concealed by freelancer

  12. proposal concealed by freelancer

  13. 1 day200 UAH

    1 day200 UAH

    Сделаю                      

  14. proposal concealed by freelancer

  15.  freelancer isn’t working in the service any longer

  1. proposal withdrawn


2 years ago

133 views

перенаправление — .

(.+/)?index\.php(/|$) /$1 [R=301,L]

Вышеперечисленное перенаправляет следующим образом, сохраняя запрошенный протокол и имя хоста:

  • /index.php на /
  • /foo/index.php до /foo/
  • /foo/bar/index.php до /foo/bar/
  • /fooindex.php — НЕТ ПЕРЕНАПРАВЛЕНИЯ (ожидается 404)
  • /foo/index.php/bar (содержит информацию о пути) на /foo/ (информация о пути удалена)
  • /foo/index.phpbar — НЕТ ПЕРЕНАПРАВЛЕНИЯ (ожидается 404)

Группа захвата (необязательно) (.*/)? содержит часть URL-пути до index.php . Это затем доступно в строке замены с использованием обратной ссылки $1 . В случае, когда в корне документа запрашивается /index.php , это пустой

. Когда присутствует подкаталог, он содержит строку вида subdir/ , включая завершающую косую черту.

Если у вас нет других директив в вашем файле .htaccess , вам не нужно строго условие , которое проверяет переменную среды REDIRECT_STATUS . Это условие гарантирует, что перенаправляются только прямые запросы в случае, если у вас есть шаблон переднего контроллера позже в файле, который может переписать запросы на index.php .

Если в файле есть другие директивы, порядок может быть важен. Это правило, которое удаляет index.php через внешнее перенаправление должно идти до любых существующих перезаписей, в верхней части файла.

Обратите внимание, что это удаляет index.php из URL-адреса независимо от того, действительно ли запрошенный URL-адрес отображается в реальный файл или существует ли предыдущий URL-путь как физический каталог. Итак,

/<что-то>/index.php перенаправляется на /<что-то>/ независимо от того, является ли /<что-то>/ физическим каталогом или нет. Эта проверка может быть реализована за счет дополнительной проверки файловой системы, но, вероятно, она не требуется.

NB: Сначала проверьте с 302 (временной) переадресацией, чтобы избежать потенциальных проблем с кэшированием. Меняйте редирект на 301 (постоянный) только после того, как вы проверили, что он работает должным образом.


ОБНОВЛЕНИЕ №1:

Эти вопросы не дают ответа:

На самом деле, первый вопрос, который вы связали с ,

отвечает на ваш вопрос об удалении index.php из запрошенного URL. Он делает адресных подкаталога и перенаправляет example.tld/dir/index.php example.tld/dir/ (а не example.tld/, как вы сказали).

Часть вопроса, в которой обсуждаются субдомены, немного вводит в заблуждение, поскольку на самом деле не имеет ничего общего с субдоменами.

Решение, представленное в связанном вопросе, в основном делает то же самое, что я сделал выше, за исключением того, что оно, возможно, слишком много (и недостаточно). Это будет неправильно/ненужно перенаправлять /fooindex.php на /foo (без косой черты в конце) и не сможет перенаправить URL-адреса, содержащие информацию о пути (что может быть вредоносным). например. /foo/index.php/bar не сможет перенаправить, но по-прежнему будет обслуживать содержимое

/foo/index.php (если только AcceptPathInfo не отключен). Хотя действительно ли эти «ошибки» вызовут проблему в вашем случае, это другой вопрос.


ОБНОВЛЕНИЕ №2:

у меня код точно в директории на 9|/)индекс\.php(/|$) /%1 [R=301,L]

Обратная ссылка %1 (в отличие от $1 ) относится к захваченной группе в предыдущем CondPattern . Это, естественно, включает в себя полный URL-путь, поэтому вам не нужно жестко кодировать каталог, в котором находится файл .htaccess .

Это относится к каталогу, который содержит файл . htaccess и любые его подкаталоги. Обратите внимание, что по умолчанию это полностью переопределяет любые директивы mod_rewrite, которые могут присутствовать в родительском .htaccess файл (директивы mod_rewrite по умолчанию не наследуются).

…включая подкаталоги, которые могут иметь свои собственные .htaccess и index.php.

Если в дополнительных подкаталогах есть собственный файл .htaccess , то это может работать или не работать в зависимости от директив, используемых в этих файлах .htaccess подкаталога и/или от того, как настроено наследование mod_rewrite.

Директивы mod_rewrite не наследуются по умолчанию. Итак, если .htaccess в подкаталоге включает механизм перезаписи, тогда указанные выше директивы mod_rewrite в родительском каталоге будут полностью переопределены (они даже не обрабатываются).

Если, с другой стороны, файл .htaccess в подкаталоге использует директивы из других модулей, это может не быть проблемой.

apache — Конфликт с перенаправлением на index.php и папку

Задавать вопрос

спросил

Изменено 4 года, 9 месяцев назад

Просмотрено 965 раз

Я арендую веб-сервер Apache. Архитектура папки такая:

  • корень
    • источник
    • шаблон
    • меньше
    • www
      • CSS
      • js
      • jpeg

Веб-сервер обслуживает только каталог www . И я использую .htaccess для перенаправления на HTTPS, удаляю www. и перенаправить все запросы на index.php , за исключением случаев, когда файл существует в папке www . www\.domain\.com$ [NC] RewriteRule (.*) https://domain.com%{REQUEST_URI} [R=301,QSA,NC,L] # Перенаправить весь маршрут на index.php # Кроме файлов RewriteCond %{REQUEST_FILENAME} !-f RewriteRule (.*) /index.php?$1/ [NC,L,QSA]

Проблема в том, когда я запрашиваю имя папки. Папка дважды перенаправляется на index.php !

Пример: Когда я запрашиваю http://domain.com/css , запрос перенаправляется на https://domain.com/index.php?css/?css/ .

Как решить двойную переадресацию?

  • апач
  • .htaccess
  • перенаправление

1

Вам необходимо либо исключить каталоги из вашего последнего правила, либо добавить завершающую косую черту, используя правило перенаправления к каталогам, чтобы избежать такого поведения

В противном случае последнее правило переписывает каталоги без косой черты на /index.php и из-за отсутствия косой черты модуль mod_dir перенаправляет, добавляя завершающую косую черту.

Добавить комментарий

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