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

.htaccess: редирект 301 с /url.php на /url (без .php)

14.03.2017, 22:32. Показов 4480. Ответов 4

Студворк — интернет-сервис помощи студентам
Граждане ученые,
очередному чайнику требуется помощь в разжевывании и переваривании.

Сейчас .htaccess содержит:
Options +FollowSymLinks
RewriteEngine on

# (3) редирект с /index.php на /
# (работает)

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://schpr.ru/ [R=301,L]

# (4) редирект с /url.html на /url.php
# (работает)

RedirectMatch 301 /(.*)\.html$ /$1.php

# (5) редирект с /url.php на /url
# (НЕ РАБОТАЕТ)

RewriteRule (.+)\.php?$ http://schpr.ru/$1 [R=301,L]
# (Точнее работает, но вместо /url браузеры выдают ошибку "Сайт schpr.ru выполнил переадресацию слишком много раз")

# (6) содержание /url.php отражаем в /url
# (работает)

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Методом тыка обнаружил, что (5) редирект приводит к искомому результату без описанной выше ошибки, если отключить (6).
Но, без работающего (6) по запросу /url возвращается ошибка 404.

(В похожие темы здесь и на прочих форумах/блогах втыкаю уже полдня: пока без просветлений..
С синтаксисом не знаком.)

В общем,
за полезные ответы
на доступном неокрепшему разуму языке
на тему того, как подружить (5) с (6) -
наидобрейшего всем настроения!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.03.2017, 22:32
Ответы с готовыми решениями:

Htaccess: Однозначно определенные URL без .php
День добрый. Существует сайт http://site.ru/ Он статичный, состоит из .php страниц. Существуют страницы вида: ...

.htaccess редирект без смены URL
Нужен редирект без изменения строки браузера Пишу правило в .htaccess RewriteCond %{HTTP_HOST} ^static.domain.ru RewriteRule...

htaccess: редирект со старых URL
Салют всем! Я решил поставить на сайт Wordpress и столкнулся с проблемой редиректа на новые страницы. На сайт есть много внешних...

4
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
14.03.2017, 23:37
5 по аналогии с 3 нужно нужно делать.

Вы зачем делаете редирект .html->.php, чтобы потом сделать на без .php? Сразу делайте html|php на без php, а если нет адресов с .html в конце пути, совсем уберите редирект с html.

Добавлено через 3 минуты
Кстати, по большому счету это все переливание из пустого в порожнее. Запрячьте php-файлы в каталог вроде lfheifhfvhfhel8 и ограничьтесь одним рерайтом в этот каталог с предварительной проверкой на существование соотв. php-файла.
0
0 / 0 / 0
Регистрация: 14.03.2017
Сообщений: 2
15.03.2017, 00:27  [ТС]
Цитата Сообщение от miketomlin Посмотреть сообщение
Вы зачем делаете редирект .html->.php, чтобы потом сделать на без .php?
(Все просто:
нашел только куски кода,
перенаправляющие корректно лишь
с .html на без-html и
с .html на .php)
Цитата Сообщение от miketomlin Посмотреть сообщение
а если нет адресов с .html в конце пути, совсем уберите редирект с html.
Успел нараздавать ссылок на страницы, пока они еще были с расширением .html
(Теперь я этим страницам изменил расширение на .php, оставив, при этом, остальной урл без изменений.)
Цитата Сообщение от miketomlin Посмотреть сообщение
Сразу делайте html|php на без php
Отличная идея.
Знать бы еще, как это реализовать, не поконфликтовав с прочими строками .htaccess..
Цитата Сообщение от miketomlin Посмотреть сообщение
5 по аналогии с 3 нужно нужно делать.
Буду крайне благодарен, если поправите код.
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
16.03.2017, 20:06
Попробуйте взять условие с 3 варианта, оставив в маске расширение и все, что дальше.
0
0 / 0 / 1
Регистрация: 20.12.2016
Сообщений: 10
29.03.2017, 03:26
Не стал создавать новую тему у меня похожий вопрос, как правильно приписать редирект в nginx?
Дело в том что на сайте стоял мод чпу и генерировал ссылки вида:

moisait.ru/forum-multfilm-f=21.html

в nginx был прописан редирект
PHP
1
2
3
location /forum {
        rewrite ^/forum-(.*)-(.*).html /viewforum.php?$2 last;
        }
по дефолту было так
moisait.ru/viewforum.php?f=21
как теперь прописать, что бы редиректило на дефолтные значения?
Уже все перековырял, пробовал вот так
PHP
1
2
3
location /forum {
        rewrite ^/viewforum.php?(.*) /forum-(.*)-(.*).html$2 last;
        }
Но ни чего не выходит(((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.03.2017, 03:26
Помогаю со студенческими работами здесь

Htaccess - удаление index.php из url с исключениями
Здравствуйте. Есть следующий код в .htaccess: RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$...

PHP+HTACCESS+IIS Преопределение URL Адресов 2.0
PHP+HTACCESS+IIS Преопределение URL Адресов 2.0 Установив модуль Преопределение URL Адресов 2.0 на IIS в Преопределение URL Адресов...

Url без index.php?r=
Здравствуйте, дорогие профессионалы! Я хочу чтобы сервером обрабатывались ссылки вида: http://test2.loc/r/4 Как...

Как сделать url без index.php?
Как сделать чтобы адрес был http://localhost/cars а не так : http://localhost/index.php/cars

CodeIgniter. Какой полный url к views/auth/index.php без mod_rewrite?
CodeIgniter. Какой полный url к views/auth/index.php без mod_rewrite?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru