Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 021 990 раз!

Форум

Добро пожаловать, Гость!

Нужна помощь по созданию RewriteRule

Обсуждение вопросов на другие темы связанные с веб-разработкой
arrer
Сообщения: 2
C нами: 1 год 9 мес

Непрочитанное сообщение arrer » 12 фев 2015, 08:15

Добрый день!
Нужна помощь знатоков в создание правила для сайта через .htaccess.
Суть довольно проста: Имеется скрипт image.php, который запускается с параметрами image.php?name=ИМЯ&class=1&size=1&x=1&y=1
Нужно сделать так называемый ЧПУ и привести данную ссылку в читабельный вид (к примеру /ИМЯ_1_1_1_1.png).
Я создал данное правило:
RewriteRule ^(.*)_(.*)_(.*)_(.*)_(.*).png$ image.php?name=$1&class=$2&size=$3&x=$4&y=$5 [L]

Но проблема в том, что данный вариант работает только с Apache. Если выбрать Apache + Nginx, то выдает 404 ошибку (в дальнейшем будет переезд на хостинг именно с такой связкой).
Помогите создать правило. Нужно именно с расширением .png в конце.
P.S. Скрипт генерирует изображение (юзербар пользователя) с ником, размером и прочим, но не все форумы будут принимать php скрипт как изображение. Вот и нужно его скрыть таким образом.

Аватара пользователя
Asmodey
Сообщения: 299
C нами: 4 года 7 мес

Непрочитанное сообщение Asmodey » 12 фев 2015, 10:04

1. А не проще это делать скриптом?
2. У нджайникса есть свой модуль коверканья урлов

arrer
Сообщения: 2
C нами: 1 год 9 мес

Непрочитанное сообщение arrer » 12 фев 2015, 17:57

1. Можно подробнее про скрипт (как создать, где создается итд).
2. Я так понял это идет настройка уже самого сервера. На Open Server доступ к этому есть, но на хостингах я этого мало где видел.

Кстати сервер выдает вот такое после перехода по ЧПУ, который работает на Apache
[error] 28048#28112: *17 CreateFile() "d:/openserver/domains/Test/generator/Nick_1_1_1_1.png" failed (2: The system cannot find the file specified), request: "GET /generator/Nick_1_1_1_1.png HTTP/1.1"

Аватара пользователя
Asmodey
Сообщения: 299
C нами: 4 года 7 мес

Непрочитанное сообщение Asmodey » 12 фев 2015, 18:27

Ваш скрипт который картинку делает. Или который будет разбирать урл и вызывать как надо генератор.
Если файл такой-то отсутствует, то передать управление тому-то.
На апачи это делается примерно так
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . image_generator.php

Это точка входа от yii (чуток подправленная), легко нагуглить аналог для нжайникса.
У Вас будет немножко другое условие, ну и видимо скрипт :).
Уже в скрипте можно разбирать урл и делать что угодно.

ИМХО. Тут надо аккуратно подходить. Что как и как часто генерить. Эта картинка часто меняется, является ли она приватной и тп.? Я бы отдавал картинку статикой. При отсутствии, вызывал скрипт подготовки.

ЗЫ. А кто и почему не понимает php как источник картинки? Может там заголовки неправильно отдаются?
ЗЫЗЫ. Вай мэ!
ИМЯ_1_1_1_1.png
с таким аккуратней при создании файла в реальной файловой системе. А то можно такого насоздавать/наотдавать :) Погуглите как защищаться. Там надо фильтровать, приводить к каноническому виду и следить, чтоб куда не вылезли... И учитывать "особенности %!@^%#" форточек в этой области :( Например - большие буквы хранить, но не различать...


Вернуться в «Оффтоп и другие темы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей