制作动态图像具有静态文件名

时间:2010-05-12 06:16:28

标签: php mod-rewrite image dynamic seo

我的网站目前有各种指向动态生成图像的php脚本的链接。例如,链接可能会说“img source =”/ dynamic_images.php?type = pie-chart& color = red“

显然,这对SEO来说并不是很好。我想以某种方式使这些链接的文件名看起来是静态的,并使用解决方案(如Mod-Rewrite)来确保仍然可以动态创建图像。

我想我可以拥有类似“img src =”average-profit-in-scuba-diving-industry.png?type = pie-chart& color = red“(并使用Mod-Rewrite来处理变化) dynamic_images.php的文件名前缀,但我担心搜索引擎会回避图像文件名末尾的查询字符串。

任何解决方案?

提前致谢。

4 个答案:

答案 0 :(得分:3)

你需要这样的东西:

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属性那么重要。

答案 1 :(得分:2)

您通常使用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

答案 2 :(得分:0)

对于您的情况,请使用Mod-Rewrite,不要担心搜索引擎会忽略查询字符串。

答案 3 :(得分:0)

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';
);

如果您不希望在URL中公开.php扩展名,则可以强制Web服务器将“dynamic-images”视为具有AddHandler指令的PHP脚本。