powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / .htaccess убрать расширение файла, добавить слэш
21 сообщений из 21, страница 1 из 1
.htaccess убрать расширение файла, добавить слэш
    #36918495
Scars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Существуют страницы вида site.ru/1/2.php

-Необходимо чтобы на них можно было попасть по адресу со слэшем на конце site.ru/1/2/.
-А так же по адресу без слэша на конце site.ru/1/2. Только в таком случае адрес должен сам изменить вид на site.ru/1/2/ и перейти на страницу.
-Правило должно применяться к страницам в корне site.ru/1.php (site.ru/1/) и страницам в папках site.ru/1/2.php (site.ru/1/2/).

Нашел решение только для вида без слэша на конце, стоит добавить слэш, вылезает 404:
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

Прошу помощи в решении, сам пытался разобраться - не получается, гуглил - безрезультатно.
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36918696
chAlx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Scars
Код: plaintext
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

Если хочешь, чтобы запрос приходил со слешем в конце, зачем требуешь там [^.]+ ?

Код: plaintext
RewriteRule ^(([0-9]+/)*?[0-9]+)/?$ /$1.php [L]

Чтобы слеш сам добавлялся в браузер, сделай отдельное правило с явным http-редиректом.
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36918996
Scars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
к сожалению я тяжело воспринимаю данный код, недавно стал копаться, и это найденный пример.
приведенный вами код авторRewriteRule ^(([0-9]+/)*?[0-9]+)/?$ /$1.php [L] не работает, пробовал. в чем то ошибка?
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36919453
Scars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл что у меня там вместо цифр буквы.
С http-редиректом помогите тоже разобраться. Как сделать правило на все страницы?
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36919544
Scars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и что означают ? знаки?
авторRewriteRule ^(([0-9]+/)* ? [0-9]+)/ ? $ /$1.php [L]
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36920011
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
RewriteRule ^((\w+/)*?\w+)/?$ /$ 1 .php [L]


Код: plaintext
RewriteRule ^(([^/]+/)*[^.]+)/?$ /$ 1 .php [L]
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36921096
Scars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Hett]
Код: plaintext
1.
RewriteRule ^((\w+/)*?\w+)/?$ /$ 1 .php [L]
данный вариант работает для вида со слэшем на конце и без слэша.
все-таки хотелось бы когда вводишь без слэша, слэш дорисовывался сам. такое возможно?
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36921344
Scars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
решение редиректа

авторRewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !^site.ru$
RewriteRule ^(.+[^/])$ http://site.ru/$1/ [R]

почему то не работает
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36922223
chAlx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Scarsпочему то не работает
RewriteCond не нужен: запросы на директории точно так же должны приходить со слешем:

Код: plaintext
RewriteRule ^/?(.+?[^/])$ http://site.ru/$ 1 / [R]

Тут, скорее, встанет обратный вопрос: как из этих правил исключить прямые запросы на статические ресурсы (png, css, js и пр.)
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36923473
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chAlx,

Как обычно

Код: plaintext
1.
2.
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36923609
chAlx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anjey aka PMКак обычно
Да, обычно именно так: на каждый http-запрос несколько раз дёргается файловая система перед тем, как передать его куда следует. А можно сразу правильную маску подставить под редиректы, а всё остальное не редиректить. Или маску для редиректов, для правильных файлов тоже маску, а всё остальное [без проверки запрошенного ./passwords.txt] отправлять в 404.
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36923687
Scars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chAlx

Код: plaintext
RewriteRule ^/?(.+?[^/])$ http://site.ru/$ 1 / [R]

Тут, скорее, встанет обратный вопрос: как из этих правил исключить прямые запросы на статические ресурсы (png, css, js и пр.)

Мля не работает. АААААААААААААААААААААААААААА в цикл идет зачем то.

А картинки то можно исключить RewriteCond %{REQUEST_URI} !^.+\.jpg
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36923812
Scars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вообщем делаю так:

исключаю нужные расширения:
RewriteCond %{REQUEST_URI} !^.+\.jpg
добавляю слэш:
RewriteRule ^(.+[^/])$ http://site.ru/$1/ [R]

однако слэш добавляется вида http://site.ru/dir.php/
осталось вырезать .php. или сделать правило вообще только ДО .php
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36923839
chAlx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Scarsоднако слэш добавляется вида http://site.ru/dir.php/
Ты же не пишешь, что нужно: принимать прямые запросы на php-файлы или корректно обрабатывать то, на что перевёл стрелки редирект.
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36923875
Scars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chAlx,

все что мне нужно написано в первом посте
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36927405
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chAlxAnjey aka PMКак обычно
Да, обычно именно так: на каждый http-запрос несколько раз дёргается файловая система перед тем, как передать его куда следует.про кеш мы конечно не в курсе?

Ну а по поводу остального -- зависит от задачи, но порой значительно чаще бывают задачи когда определенный путь надо обрабатывать через скрипт лишь в том случае, когда нету такого файла на диске.
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36927754
chAlx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anjey aka PMchAlxна каждый http-запрос несколько раз перед тем, как передать его куда следует.про кеш мы конечно не в курсе?
Раз не в курсе, поясню: кэш файловой системы очень полезен, но только после того, как "дёргается файловая система". Т.е. это по-любому системный запрос.
И там ещё был аргумент про отсечение потенциально опасных запросов: ни к чему испытывать правильность конфигов и файловых прав, если запрос можно вообще не пропускать.

В общем, случаи разные бывают. Но я считаю, что !-f используют в основном от лени и то же можно расписать боле чётко (раз уж задача начинается с того, чтобы прямые пути не использовать).
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36928402
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chAlx,

однако не использовать его руководствуясь вашими соображениями про нагрузку на файловую систему это всеравно что экономить на хлебных крошках, даже меньше
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36928995
Scars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем задача не решена, буду использовать страницы без слэша на конце
...
Рейтинг: 0 / 0
.htaccess убрать расширение файла, добавить слэш
    #36929000
Scars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Жесть какая-то.. смешно. За все это время рылся найти решение не мог, а тут за 5 мин аж 2 способа нашел:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [L,R=301]

RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1/ [R,L,QSA]

это добавление слэша. далее по моему вопросу - подставление этого адреса к страницам .php

RewriteRule ^((\w+/)*?\w+)/$ /$1.php [L]

--
всем спасибо кто пытался помочь
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
.htaccess убрать расширение файла, добавить слэш
    #38798492
Спасибо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Scars, спасибо, мне очень помог ваш код.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / .htaccess убрать расширение файла, добавить слэш
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]