(.*)$ $1

12

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

htaccess Редиректы (примеры)

Приведенные ниже примеры могут быть добавлены в ваш файл . index\.php$ — [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

Редирект сайта на новый домен

Следующая строка перенаправляет все URL-адреса вашего сайта на новый сайт.

Redirect 301 / https://example.com/

Примеры простых редиректов отдельной страницы

Использование Redirect в файле .htaccess позволяет перенаправлять пользователей со старой страницы на новую без необходимости сохранения старой страницы.

Например, если вы используете index.html в качестве индексного файла, а затем позже переименуете index.html в home.html, вы можете настроить перенаправление для отправки пользователей с index.html на home.html:

Внутренний редирект на другую страницу
Redirect /path/to/old/file/old.html /path/to/new/file/new.html
Редирект страницы на страницу другого сайта
Redirect /path/to/old/file/old.html https://www.example. index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Источник

apache — перенаправить все запросы на index.php .htaccess

спросил

Изменено 6 лет, 8 месяцев назад

Просмотрено 6к раз

Это мой файл .htaccess:

 RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Правило перезаписи. index.php [Л]
 

Я получаю внутреннюю ошибку сервера 500. После этой команды: кот /var/log/apache2/error.log Я получил следующие ошибки:

 AH00124: запрос превысил ограничение в 10 внутренних перенаправлений из-за вероятной ошибки конфигурации. Используйте «LimitInternalRecursion», чтобы увеличить лимит, если это необходимо.  Используйте отладку LogLevel, чтобы получить обратную трассировку.
 

Пожалуйста, помогите мне разобраться с этим?

  • php
  • апач
  • .htaccess

2 9(.+)$ /index.php/$1 [L,QSA]

Проверить этот ответ об ошибке сервера.

Таким образом, [L] только останавливает обработку для текущего набора правил и передает переписанный URL-адрес обратно механизму анализа URL-адресов, который может снова применить ваш набор правил. 10 раз. И тогда Apache говорит стоп.

Вы можете добавить условие, чтобы не перезаписывать, если перезапись уже идет на index.php :

 RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/index.php
Правило перезаписи. index.php [Л]
 9- [Л]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Правило перезаписи. index.php [Л]
 

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

.

htaccess — перенаправить все URL-адреса и существующие каталоги на index.php

спросил

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

Просмотрено 3к раз

Мне нужно иметь возможность перенаправить абсолютно все URL-адреса в каталоге на файл index.php в каталоге. В отличие от всех других ответов, которые я нашел, этот включает существующие каталоги и существующие файлы. Для этого я использую Apache с файлом .htaccess. Пока что мой файл .htaccess выглядит следующим образом: 9.*$ /подкаталог/индекс\.php

Но это дает мне неизбежную «Ошибку 500». Что я делаю не так? Как я могу просто перенаправить все на index.php?

TIA

  • php
  • .htaccess
  • mod-rewrite

Ошибка связана с этим

См. Что совпадает?

  • В контексте каждого каталога (Каталог и .htaccess) 9.*$ /подкаталог/индекс\.php

    Это перепишет любой запрос на /sub/directory/index.php , который, в свою очередь, будет снова перезаписан на /sub/directory/index.php

    , и так далее, пока модуль перезаписи не сдастся и не покажет ошибка «слишком много перенаправлений» или аналогичная.

    1

    До сих пор понятия не имею, почему мой второй исходный файл .htaccess не работал, но следующий наконец-то заработал:

    
    RewriteEngine включен
    RewriteCond %{REQUEST_URI} !=/sub/directory/index.php
    Правило перезаписи .* /sub/directory/index.php
    
     9(.*)$ /index.php?path=$1 [NC,L,QSA]
     

    Я столкнулся с той же проблемой, и я могу решить ее как-то (не по-умному, я думаю). Проблема в том, что HTML не меняется на корневую папку.

    Я могу решить свою задачу, используя HTML-тег «база» (вы можете указать путь, чтобы адаптировать его к нужному корневому каталогу.