—
(.*)
— группа подстановочных знаков, что означает, что перед символом слова в URI может быть ноль или любое количество символов (т. е. это часть, которая позволяет включить корневой каталог или любые подкаталоги в соответствие URI) —
\.(ico|gif|png|jpe?g)
проверяет, что расширение URI соответствует любым из .ico
, .gif
, .png
, .jpg
, .jpeg
—
$
— конец регулярного выражения —
http://%1/images/favicon.ico
— это URL-адрес перенаправления — и он вводит имя хоста, которое мы получили в предыдущем RewriteCond
. Обратите внимание, что %1
— это обратная ссылка RewriteCond, это означает, что это последний RewriteCond
, который был встречен. (например, %2
будет вторым последним RewriteCond
который был выполнен) —
R=301
означает, что это постоянная переадресация, которая хранит перенаправление в кеше браузера. Будьте осторожны при тестировании — вам нужно будет удалить кеш браузера между изменениями кода или перенаправление не будет обновляться. Наверное, оставьте это, пока не узнаете, что правило работает. L
означает, что в этом файле .htaccess
использоваться последний переадресация — вам не понадобится это, чтобы заставить правило работать, так как строка 1 не будет выполняться, как только браузер будет перенаправлен на правильный URL-адрес. Без строки 1 или L
RewriteRule приведет к постоянному циклу (поскольку URL-адрес перенаправления будет продолжать удовлетворять условиям RewriteRule
). Тем не менее, это хорошая идея добавить
L
любом случае, если у вас есть другие правила, следующие за правилами favicon — так как по запросу favicon.ico вы можете (возможно) игнорировать любые следующие правила. Вы можете проверить правила .htaccess
адресу http://htaccess.mwl.be/
Конечное примечание:
— будьте осторожны, чтобы у вас не было другого RewriteRule в файле .(.*)$ /index.php?path=$1 [NC,L,QSA]
В данный момент вы просто сопоставляете .
, который равен одному экземпляру любого символа, вам нужно как минимум .*
, чтобы соответствовать любому количеству экземпляров любого символа.
$_GET['path']
будет содержать фальшивую структуру каталогов, например, /mvc/module/test
, которую затем можно использовать в index.php для определения контроллера и необходимых действий. выполнять.(.*)$ /mvc/index.php?path=$1 [NC,L,QSA]
И убедитесь, что ваш index.php
находится в этой папке, а файл .htaccess
находится в корне документа.
Альтернатива $_GET['path']
(обновлено от 18 февраля и 19 января)
На самом деле нет необходимости (и даже сейчас не принято) устанавливать путь как переменную $_GET
$_SERVER['REQUEST_URI']
для получения той же информации — обычно для определения того, какой Контроллер использовать — но принцип точно такой же..*$ /mvc/index.php [L,QSA]
Флаги:
NC
= Без учета регистра (без учета регистра, не обязательно, так как в шаблоне нет символов)
L
= Last (он перестанет перезаписываться после этого Rewrite, поэтому убедитесь, что он последний в вашем списке перезаписей)
QSA
= Добавление строки запроса на тот случай, если у вас есть что-то вроде ?like=penguins
в конце, которое вы хотите сохранить и передать в индекс.php.
index.html перенаправление на index.php | WordPress.org
Поскольку WordPress использует index.php, а не index.html, для правильной загрузки вы ДОЛЖНЫ иметь index.php для загрузки index.html в папке установки WordPress. BPS поставляется с этим кодом htaccess в стандартном файле htaccess BPS Root, чтобы обеспечить правильную загрузку WordPress.
Поскольку ваши фотокарты находятся в подпапке, а не непосредственно в папке установки WordPress, решение очень простое и легкое…
1.Загрузите копию Htaccess-файла BPS Root (.htaccess) с вашего веб-сайта (папка установки WordPress — та же папка, где находится wp-config.php).
2. Отредактируйте загруженный файл htaccess BPS Root и удалите/удалите весь код htaccess из файла htaccess. Затем добавьте только код htaccess, показанный ниже. Сохраните изменения редактирования.
3. Загрузите новый отредактированный файл htaccess в корневую папку photomaps. Логично, что это будет папка /maps/photomaps/. Примечание: файлы htaccess являются иерархическими/рекурсивными, что означает, что правила htaccess в родительской папке будут применяться ко всем дочерним папкам (подпапкам) ниже родительской папки.
RewriteEngine вкл. # ИНДЕКС КАТАЛОГА FORCE INDEX.PHP # Использовать index.php в качестве индексного файла каталога по умолчанию. index.html будет проигнорирован. # Если при активации Root BulletProof Mode возникает внутренняя ошибка сервера 500 # копируем все разделы кода DO NOT SHOW DIRECTORY LISTING и DIRECTORY INDEX # и вставьте его в пользовательский код BPS и закомментируйте DirectoryIndex # добавив перед ним знак #. # Пример: #DirectoryIndex index.php index.html /index.php # Эта строка ниже была закомментирована для Photomaps Индекс #DirectoryIndex.php index.html /index.php # Эта строка ниже была создана для Photomaps DirectoryIndex index.html
- Этот ответ был изменен 2 года, 6 месяцев назад AITpro.
- Этот ответ был изменен 2 года, 6 месяцев назад AITpro.
Я вижу логику — я действительно читал этот бит во всем файле htaccess, когда вы ответили. Проблема в том, что он не работает! Все еще получаю перенаправление.
Интересно, это из-за этого дальше по основному файлу htaccess —
# ПОЛЬЗОВАТЕЛЬСКИЙ КОД НИЖНЯЯ ХОТЛИНКИНГ/ЗАПРЕТ КОММЕНТАРИЙ СПАММЕРАМ/БЛОКИРОВКА БОТОВ/БЛОКИРОВКА IP/КОД ПЕРЕНАПРАВЛЕНИЯ
# ПЕРЕЧИСЛЕНИЕ АВТОРОВ WP BOT PROBE PROTECTION
# Переписывает на author=999999, который на самом деле не существует
# что приводит к стандартной ошибке 404.(.*)/index.html$ http://carnethy.com/
Ха! Да, это был редирект со старого сайта на новый, который делал это! Я забыл, что там было; Прошли годы с тех пор, как мы перешли на WP.
А ведь он теперь открывается без htaccess в папке photomaps.
Спасибо за оперативную помощь!
- Этот ответ был изменен digbymaass 2 года, 6 месяцев назад.
[HOWTO] Переписать все URL-адреса в один index.php в Apache · GitHub
В одном из моих любимых проектов я перенаправляю все запросы на index.php, который потом решает, что с ним делать:
Простой пример
Этот фрагмент в вашем .htaccess гарантирует, что все запросы на несуществующие файлы и папки будут перенаправлены на index.php:
RewriteEngine включен RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f Правило перезаписи.(./]*)(.*)$ index.php?first=$1&second=$2
Первая часть пути будет передана как первый параметр, а остальная часть — как второй. Итак, следующий запрос
http://yourhost.com/some/path/somewhere
даст
http://yourhost.com/index.php?first=some&second=path/somewhere
Это позволяет использовать некоторые творческие способы очистки URL-адресов.
Устранение неполадок
Если это не работает, убедитесь, что mod_rewrite установлен на Apache.В системе unix вы можете просто сделать
sudo a2enmod переписать
для этого.
Источник http://jrgns.net/content/redirect_request_to_index
Как перенаправить Index.php на домашнюю страницу в Joomla?
Если вы используете Joomla в качестве CMS (системы управления контентом), одной из распространенных ошибок является использование /index.php в логотипе веб-сайта. Это создает новый URL-адрес www.example.com/index.php , который фактически показывает тот же контент, что и на домашней странице www.пример.com .
Оба URL-адреса будут рассматриваться Google как две отдельные и разные страницы, таким образом возникает проблема с дублированием контента . Это может сильно повлиять на видимость вашего сайта в поиске и удобство для пользователей.
Возможные URL-адреса, которые могут создать проблему дублирования содержимого страницы:
Возможные URL-адреса, которые могут создать проблему дублирования контента:
example.com Связанная запись: Шаги, чтобы правильно 301 ваши домены Давайте посмотрим, как вы можете перенаправить версию index.php на свой корневой домен или на домашнюю страницу в Joomla и устранить проблему дублирования контента. Когда Google находит все эти разные URL-адреса, которые на самом деле указывают на одну и ту же домашнюю страницу, Google выбирает и канонизирует URL-адрес, который кажется лучшим из этого набора URL-адресов. Но это решение также сильно зависит от внутренних ссылок, а также от того, сколько ссылок вы указываете на example.com/index.php или www.example.com по всему сайту. Однако это по-прежнему создает проблему дублирования URL-адреса содержимого. Чтобы устранить эту проблему и убедиться, что Google выбирает нужный URL-адрес, вы должны использовать тег rel=canonical . Просто добавьте следующий HTML-код в раздел
example.com/
www.example.com
www.example.com/
example.com/index.html
example.com/home.asp
1. Канонизировать страницы
Это установит http://www.example.com в качестве предпочтительного URL-адреса и укажет поисковым системам следовать ему.
(Этот процесс называется канонизацией , который выбирает лучший URL-адрес при наличии нескольких вариантов или URL-адресов.)
2. Используйте перенаправление 301
Другой способ решить эту проблему — использовать 301 перенаправление . Он постоянно перенаправляет страницы на один целевой URL.(.*)index.php$ /$1 [R=301,L]
Примечание. обязательно сделайте резервную копию файла .htaccess, прежде чем вносить какие-либо изменения.
Есть ли у вас опыт решения этой проблемы или вы знаете какой-либо другой способ перенаправления, не указанный здесь? Пожалуйста, поделитесь в комментариях.
Перенаправить index.php в корень
Блоги WordPress показывают одинаковый дублированный контент для https://www.askapache.com/index.php
и https://www.askapache.com/
. Если вы читали об использовании файла robots.txt для WordPress SEO, то вы уже понимаете, что эта настройка приводит к штрафам Duplicate Content , взимаемым с вашего блога и веб-сайта поисковыми системами.
Общий запрос состоит в том, чтобы иметь возможность удалить или перенаправить index.php
из URL-адреса. Это возможно только с технологией на стороне сервера, такой как файлы конфигурации .htaccess или конфигурация вашего основного сервера с использованием модуля перезаписи Mod_Rewrite.
Исправление перенаправления
Исправление представляет собой немного умного кода .htaccess, использующего mod_rewrite для перенаправления index.php
только в том случае, если запрос на /index.php
поступил от клиента (например, браузера или веб-робота) , а не если запрос это внутреннее перенаправление , которое apache делает, когда запрашивается /
, чтобы он мог обслуживать содержимое index.php
.
.htaccess mod_rewrite код
аскапач.index.php$ https://www.askapache.com/blog/ [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d Правило перезаписи. /блог/index.php [L]
Подробнее
Проблема с этим заключается в том, что любой запрос «/» внутренне перезаписывается Apache mod_dir в index.php, если у вас есть index.php в списке DirectoryIndex (обычная настройка), поэтому трудно избежать бесконечного цикла .
Как перенаправить в PHP
URL-адрес браузера пользователя можно изменить с одного места на другое с помощью перенаправления.Перенаправление требуется для многих целей, таких как переключение с HTTP на HTTPS, изменение домена и т. д. Когда пользователь отправляет запрос на страницу на несуществующий сервер или на измененное местоположение страницы, сервер отправить информацию о новом URL-адресе с HTTP-кодом 301 или 302. Это поможет пользователю узнать о новом URL-адресе путем перенаправления, и пользователь отправит запрос в новое место, чтобы получить желаемый контент. URL-адрес перенаправляется в PHP с использованием функции header() .В этом руководстве показано, как можно использовать функцию header() в PHP для перенаправления URL-адреса с одной страницы на другую.функция заголовка()
Это встроенная функция PHP для отправки необработанного заголовка HTTP клиенту. Синтаксис этой функции показан ниже.
Синтаксис:
заголовок ($header, [$replace, [$http_response_code]])
Эта функция может принимать три аргумента. Первый аргумент является обязательным, а последние два аргумента необязательны. $header используется для хранения строки заголовка, содержащей местоположение перенаправления. $replace определяет, заменять ли предыдущий аналогичный заголовок, и значение этого аргумента является логическим. $http_response_code используется для хранения определенного кода ответа, который будет отправлен пользователю.
Пример 1: URL-адрес перенаправления с кодом состояния по умолчанию
Создайте файл PHP со следующим кодом, который будет перенаправлен на новое место после ожидания в течение 2 секунд.Здесь функция die() используется для завершения скрипта. Когда функция header() используется с одним аргументом, то в качестве кода HTTP по умолчанию используется 302 .
//Подождите 2 секундыsleep(2);
//Перенаправить в определенное место
header(«Расположение: http://localhost/php/contactForm/index.html»);
умереть();
?>
Вывод:
После выполнения кода URL-адрес перенаправляется по адресу http://localhost/php/contactForm/index.html через 2 секунды. Если вы проверите код и откроете вкладку Network , то в качестве кода состояния по умолчанию будет отображаться 302 .
Пример 2: URL-адрес перенаправления на постоянной основе
Создайте файл PHP со следующим кодом, который будет перенаправлен на новое место после ожидания в течение 2 секунд. Здесь функция die() используется для завершения скрипта. Здесь функция header() используется с тремя аргументами. TRUE используется в качестве второго аргумента, а 301 используется в качестве третьего аргумента.Код состояния 301 используется для постоянной переадресации.
//Подождите 2 секундыsleep(2);
//Перенаправить в определенное место
header(«Расположение: http://localhost/php/contactForm/index.html»,TRUE,301);
умереть();
?>
Вывод:
После выполнения кода URL-адрес перенаправляется на адрес http://localhost/php/contactForm/index.html через 2 секунды. Если вы проверите код и откроете вкладку Network , то она покажет 301 в качестве кода состояния, указывающего, что URL-адрес перемещен навсегда.
Пример 3: временный URL-адрес перенаправления
Создайте файл PHP со следующим кодом, который будет перенаправлен на новое место после ожидания в течение 2 секунд. Здесь функция die() используется для завершения скрипта. Здесь функция header() используется с тремя аргументами. TRUE используется в качестве второго аргумента, а 307 используется в качестве третьего аргумента. Код состояния 307 используется для временного перенаправления.
//Подождите 2 секундыsleep(2);
//Перенаправить в определенное место
header(«Расположение: http://localhost/php/contactForm/index.html»,TRUE,307);
die();
?>
Вывод:
После выполнения кода URL-адрес перенаправляется на адрес http://localhost/php/contactForm/index.html через 2 секунды. Если вы проверите код и откроете вкладку Network , то она покажет 307 в качестве кода состояния, указывающего, что URL-адрес временно перенаправлен.
Пример 4: URL-адрес перенаправления на основе условия
Создайте файл PHP со следующим кодом, который будет перенаправлять URL-адрес на основе условного оператора.HTML-форма разработана в сценарии для перенаправления URL-адреса на основе выбранного значения раскрывающегося списка. Здесь выпадающий список содержит три значения. Когда Google выбран из раскрывающегося списка, PHP-скрипт перенаправит URL-адрес на адрес https://google.com с кодом состояния по умолчанию 302 . Когда LinuxHint выбран из раскрывающегося списка, PHP-скрипт перенаправит URL-адрес на адрес https://linuxhint.com с кодом состояния 301 .Когда Fahmidasclassroom выбран из раскрывающегося списка, PHP-скрипт перенаправит URL-адрес на адрес https://fahmidasclassroom.com с кодом состояния 302 .