У меня небольшие проблемы с перестройкой мод. Мой друг пишет сценарий, который позволяет загружать изображения.Mod Переписать и передать URL-адрес в качестве параметра
Что мы хотим сделать, так это разрешить пользователю добавлять доменное имя к прямой ссылке, а сценарий будет извлекать изображение из предоставленного URL-адреса.
Например, если изображение на: http://www.test.com/image.jpg, добавив domain.com /http://www.test.com/image.jpg позволит скрипт для извлечения, что URL (TEST.COM), чтобы получить изображение, которое мы хотим.
EDIT: HTTP-адрес перед URL-адресом, потому что я не хочу, чтобы пользователь удалял HTTP вручную. Они видят изображение в своем браузере, они добавляют «domain.com» перед ним, http и все, и сценарий извлекает это изображение и сохраняет его на нашем сервере.
Правило я использую:
RewriteRule ^([\w|.|/]+(jpg|png|gif))$ /upload.php?url=http://$1 [B,L,NC,R=302]
это правильно соответствует URL, но двоеточие в HTTP: // вызывает проблемы.
Если пользователь вводит данные: domain.com/www.test.com/image.jpg, он работает.
Если пользователь вводит: domain.com/http://www.test.com/image.jpg, он не работает, и я получаю запрещенную страницу 403 (XAMPP в Windows).
Если пользователь вводит: domain.com/http//www.test.com/image.jpg, он работает (без двоеточия в http).
EDIT: Работая, я имею в виду, если я проверить его на месте, я получаю, чтобы увидеть URL я прохожу в параметре в $ _GET [ «URL»] правильно, вместо того, чтобы видеть сообщение об ошибке 403.
Не могли бы вы рассказать мне, что не так с этим правилом и как его исправить? Или любые альтернативные решения для достижения желаемого поведения?
Спасибо.
Почему вам даже нужно 'http: //' в правой части правила? И что означает «работает»? –
Я отредактирую вопрос, чтобы он стал яснее. Сожалею! –
В конфигурации apache для вашего виртуального сервера вы можете установить файл журнала mod_rewrite и сообщить Apache, чтобы он регистрировал все, когда к нему обращался URL-адрес веб-службы. Я подозреваю, что ошибка может быть не такой, как вы думаете. Директива Google RewriteLog для версии apache, которую вы используете. –