Создание динамических изображений со статическими именами файлов - PullRequest
1 голос
/ 12 мая 2010

Мой сайт в настоящее время имеет различные ссылки на php-скрипт, который генерирует изображения динамически.Например, ссылка может сказать «img source =» / dynamic_images.php? Type = pie-chart & color = red "

Очевидно, что это не очень хорошо для SEO. Я хотел бы как-то сделать имена файлов дляэти ссылки кажутся статическими и используют решение (такое как Mod-Rewrite), чтобы гарантировать, что изображения все еще могут быть динамически созданы.

Я полагаю, у меня могло бы быть что-то вроде "img src =" средняя-прибыль-in-scuba-diving-industry.png? type = pie-chart & color = red "(и использовать Mod-Rewrite, чтобы позаботиться об изменении префикса имени файла на dynamic_images.php), но я боюсь, что поисковые системы будут уклонятьсяиз строки запроса в конце имени файла изображения.

Любые решения?

Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 12 мая 2010

Вам нужно что-то вроде:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^dynamicChart_([^_]+)_([^_]+).png dynamic_images.php?type=$1&color=$2

Использование вышеприведенного (если я написал это без опечаток) должно означать, что запрос dynamicChart_pie-chart_red.png должен переводиться в dynamic_images.php?type=pie-chart&color=red

Я не думаю, что атрибут SRC для ваших изображений столь же важен для SEO, как ваши атрибуты ALT или TITLE.

2 голосов
/ 12 мая 2010

Обычно вы используете mod_rewrite, чтобы скрыть строки запроса! Вы можете использовать такие имена файлов на своих страницах:

/dynamic-images/pie-chart/red/average-profits-in-scuba-diving-industry-19.png

И пусть mod_rewrite переведет их на:

/dynamic-images.php?type=pie-chart&color=red&datasrc=19
0 голосов
/ 12 мая 2010

mod_rewrite - один из ответов, но для чего-то простого, подобного этому, это все равно, что взорвать здание, чтобы убить комара в одной из комнат.$_SERVER['PATH_INFO'] доступно для извлечения дополнительных битов пути, например,

http://example.com/dynamic-images.php/pie-chart/red/average-profits

будет иметь

$_SERVER['PATH_INFO'] = '/pie-chart/red/average-profits';

, которые вы можете затем проанализировать с помощью:

$query = explode('/', $_SERVER['PATH_INFO']);

и выв итоге:

$query = array(
    0 => '',
    1 => 'pie-chart',
    2 => 'red',
    3 => 'average-profits';
);

Если вы не хотите, чтобы расширение .php отображалось в URL, вы можете заставить веб-сервер обрабатывать «динамические изображения» как PHP-скрипт с директивой AddHandler.

0 голосов
/ 12 мая 2010

В вашем случае используйте Mod-Rewrite и не беспокойтесь о том, что поисковые системы игнорируют строку запроса.

...