Как изменить URL-адрес из расширения PHP на расширение PNG? Я создаю генератор изображений для пользователей, чтобы опубликовать их оценку на тесте на форумах. Основной целевой форум, однако, не позволяет расширения php в изображениях. Как изменить этот URL-адрес:
http://everythingtutorials.org/noobtest/buildimg.php?1=2816
к чему-то вроде этого:
http://img.ruphp.com/php/picture_2816.png
То, что вы запрашиваете, выполняется на уровне веб-сервера, прежде чем запрос достигнет PHP. Вам необходимо настроить ваш веб-сервер для отправки всех запросов на нужный URL-адрес в PHP-скрипт.
Вы не указываете, какой веб-сервер вы используете. Следующий ответ применяется, если вы используете Apache, который, возможно, является самым распространенным веб-сервером для включения сайтов PHP.
Один из способов сделать это – использовать модуль Apache mod_rewrite . mod_rewrite
позволяет Apache «переписывать» определенные URL-адреса, чтобы преобразовать их в другие URL-адреса.
Конкретная директива Apache, которую вы хотите:
RewriteEngine on RewriteRule ^/noobtest/picture_([0-9]+)\.png$ /noobtest/buildimg.php?id=$1 [L]
Они должны быть помещены в вашу конфигурационную директиву Apache <VirtualHost>
в httpd.conf
или аналогичную. Если у вас нет доступа к конфигурации сервера, вы можете попробовать разместить их в файле .htaccess
. Файлы .htaccess
файлы конфигурации для каждого каталога (имена, как вы догадались, .htaccess
), которые содержат директивы Apache. Использование файла .htaccess
менее эффективно, но может потребоваться.
Чтобы настроить RewiteRule с использованием файла .htaccess
, создайте файл /noobtest/.htaccess
содержащий:
RewriteEngine on RewriteRule ^picture_([0-9]+)\.png$ buildimg.php?id=$1 [L]
Обратите внимание: здесь вы не укажете каталог. Также обратите внимание, что mod_rewrite должен быть уже загружен вашим сервером, и вы должны иметь разрешение (через AllowOverride
), чтобы таким образом переопределить конфигурацию Apache . Если любой из них неверен, и вы не можете изменить файлы конфигурации Apache, вам не повезло.