URL-адрес URL-адреса PHP от /buildimg.php?1=2816 до /picture_2816.png?

Как изменить 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, вам не повезло.