Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 9

mod_rewrite: все на index.php без www и index.php

13.02.2013, 20:14. Показов 4792. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую, уважаемые форумчане!
Подскажите, пожалуйста, как мне реализовать следующую схему в .htaccess, используя mod_rewrite.
Я хочу все запросы перенаправлять на site.loc/index.php, при этом www.site.loc/index.php должен редиректить на site.loc/.
Как это все сделать по отдельности нашел, но как связать воедино - не знаю.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
RewriteEngine On
RewriteBase /
# remove www from host
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
#removing index.php
RewriteCond %{REQUEST_URI} ^(.*)index\.php$
RewriteRule ^ %1 [R=301,L]
#exit if redirect
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.02.2013, 20:14
Ответы с готовыми решениями:

Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php
ссылка получается вот такая: mysite.loc/index.php?cat=PHP&article=obrabotka_formy как это переделать на: ...

переадресация на index.php средствами mod_rewrite
Hi, All! задача: пропускать все запросы через index.php кроме некоторых выделенных директорий имеется .htaccess: RewriteCond...

Вывод ссылок вместо "index.php?page=2" так - "index-page2.html"
Можно ли сделать вывод ссылок вместо "index.php?page=2" таким образом - "index-page2.html" ?

7
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
14.02.2013, 00:25
У вас и так всё связано
0
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 9
14.02.2013, 01:20  [ТС]
Илья Федин, спасибо за ответ!

Привел код к следующему виду:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
RewriteEngine On
RewriteBase /
#remove www from host
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
#removing index.php
RewriteCond %{REQUEST_URI} ^(.*)index\.php$
RewriteRule ^(.*)$ %1 [R=301,L]
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . / [L]
Теперь все работает как мне требовалось.
0
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 9
18.02.2013, 18:03  [ТС]
Друзья, назрел еще один вопрос с этим же .htaccess.
Подскажите, пожалуйста, как мне убрать завершающий слеш, если он есть, из адресной строки?
Текущий .htaccess:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Options +FollowSymLinks
 
RewriteEngine On
RewriteBase /
#remove www from host
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
#remove index.php
RewriteCond %{REQUEST_URI} ^(.*)index\.php$
RewriteRule ^(.*)$ %1 [R=301,L]
#all queries on index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . / [L]
0
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
18.02.2013, 20:23
Fobio,
Code
1
RewriteRule ^(.*)\/$ $1 [R=301]
Если не работает, сделайте так:
Code
1
RewriteRule ^(.*)\/$ http://site.ru/$1 [R=301]
Вместо site.ru естественно адрес вашего сайта, прошу отписаться каким вариантом воспользовались

Добавлено через 3 минуты
Цитата Сообщение от Fobio Посмотреть сообщение
Code
1
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
Правильней будет:
Code
1
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
0
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 9
18.02.2013, 20:57  [ТС]
Илья Федин, спасибо за помощь!
Привел код к следующему виду:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Options +FollowSymLinks
 
RewriteEngine On
RewriteBase /
#remove www from host
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,L]
#remove index.php
RewriteCond %{REQUEST_URI} ^(.*)index\.php$
RewriteRule ^(.*)$ %1 [R=301,L]
#remove last slash
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.*)$ %1 [R=301,L]
#remove more than one slash
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%3 [R=301,L]
#all queries on index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . / [L]
Добавлено через 9 минут
7 пункт тоже исправил
0
 Аватар для Илья Федин
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
18.02.2013, 20:59
Цитата Сообщение от Fobio Посмотреть сообщение
%1/%3
Быть может %1/%2 ?
Вообще ваш код немножко запутанный

Добавлено через 43 секунды
Цитата Сообщение от Fobio Посмотреть сообщение
спасибо за помощь!
Пожалуйста
1
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 9
18.02.2013, 21:11  [ТС]
Илья Федин, согласен, %1/%2. Думал, получится сносить повторные слеши одним разом и выделял их в группу. Не получилось, а поменять обратно забыл.
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.02.2013, 21:11
Помогаю со студенческими работами здесь

Редирект с /index.php/... на /...
Помогите поменять адрес: "http://mysite.ru/index.php/welcome" на "http://mysite.ru/welcome" с условием, что если я вручную...

Apache не загружает index.php
Загружает только index.html если убрать и его то появляется сообщение index of / и содержимое папки сайта. Как сделать так чтобы сразу...

Нет файла index.php
Здравствуйте! Надеюсь в правильную ветку пишу... Прошу помощи. Делали мне сайт несколько лет назад, все работает, все ок. Тут...

index.php вместо 404
Помогите новичку, подобной темы не нашел. Как сделать:когда пользователь вводит/приходит на несуществующий url, его перенаправляло на...

index.php (индексные файлы)
На сервере стоит wordpress 4.3.1. В настройках apache 2.2.22 не было выставлено определение индексных файлов в частности index.php,в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru