我的网站目前有各种指向动态生成图像的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的文件名前缀,但我担心搜索引擎会回避图像文件名末尾的查询字符串。
任何解决方案?
提前致谢。
答案 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脚本。