Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / .htaccess убрать расширение файла, добавить слэш / 21 сообщений из 21, страница 1 из 1
25.10.2010, 16:44
    #36918495
Scars
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.htaccess убрать расширение файла, добавить слэш
Добрый день.
Существуют страницы вида 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
25.10.2010, 18:06
    #36918696
chAlx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.htaccess убрать расширение файла, добавить слэш
Scars
Код: plaintext
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

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

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

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


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

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

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

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

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

Как обычно

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

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

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

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

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

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

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

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

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

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

однако не использовать его руководствуясь вашими соображениями про нагрузку на файловую систему это всеравно что экономить на хлебных крошках, даже меньше
...
Рейтинг: 0 / 0
30.10.2010, 09:12
    #36928995
Scars
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.htaccess убрать расширение файла, добавить слэш
Вообщем задача не решена, буду использовать страницы без слэша на конце
...
Рейтинг: 0 / 0
30.10.2010, 09:27
    #36929000
Scars
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.htaccess убрать расширение файла, добавить слэш
Жесть какая-то.. смешно. За все это время рылся найти решение не мог, а тут за 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
Период между сообщениями больше года.
07.11.2014, 13:40
    #38798492
Спасибо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.htaccess убрать расширение файла, добавить слэш
Scars, спасибо, мне очень помог ваш код.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / .htaccess убрать расширение файла, добавить слэш / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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