swfAddress,mod_rewrite和SEO的URL问题

时间:2011-02-12 06:02:15

标签: php mod-rewrite seo uri swfaddress

嘿伙计们,我有一个完整的Flash网站,这是一个深层链接,我正在开发一个php脚本,它将在页面上动态生成备用内容。

我无法让swfaddress的SEO版本工作,所以我试图绕过另一种方式。

到目前为止这是它的工作方式 - 我的可抓取链接是这样的:

mydomain.com?id=video ----->被重写为: mydomain.com/video /

php脚本读取id并准备相应的内容。问题是,当用户点击Flash内容时,他们的网址会显示如下:

mydomain.com/video/#contact,
mydomain.com/video/#about-us
等等

这令人困惑。有没有办法摆脱使用PHP或javascript的uri路径中的“/ video /”?有什么想法或不可能吗?

1 个答案:

答案 0 :(得分:0)

对任何可能和我一样的人;努力理解Asual的swfAddress SEO解决方案我得出了一个满意的结论。

我使用了一个index.php并支持datasource.php,其中包含switch语句中的所有结果。在index.php中首先调用switch语句,并通过从通过GET发送的id(例如,?id = video)收集以下信息来运行。然后switch语句继续匹配适当的内容,为要使用的其余脚本设置变量。我使用了以下内容:

$title
$description
$keywords
$canonical // hint: -> 'domain/video?id=somevid' to 'domain.com/video/' (see canonical in google)
$stylesheet
$body

在datasource.php之后,我在它下面加了一个“head.php”,它获得了html滚动,doctype等(但主要关注的是< head>)并列出了关键字,描述和内容,特定于该页面。

Swfaddress javascript将在Flash用户输入时设置深层链接:

SWFAddress.setValue(< ?php echo "/$id" ?>); // eg."/video"

index.php使用swfobject嵌入 - 我使用静态嵌入(我听说过哪个地方更适合SE,更多的未来证明,但谁知道,我更喜欢它)。替代内容是一个div,它回显先前提取的存储的$ body。

最后,我使用mod_rewrite设置我的可抓取链接。在测试期间,我直接引用我的文件。

< IfModule mod_rewrite.c >
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /

RewriteRule ^home/? ?id=home [NE,L]
RewriteRule ^about/? ?id=about [NE,L]
RewriteRule ^video/? ?id=video [NE,L]

RewriteRule ^home/? ?id=home [NE,L] RewriteRule ^about/? ?id=about [NE,L] RewriteRule ^video/? ?id=video [NE,L]

这可确保我的链接如下所示:http://www.mydomain.com/video/

结果为:http://mydomain.com?id=video

搜索引擎可以完美地抓取它,仅查看用户将看到闪存的html内容,当他们点击链接时,他们会看到如下内容:

http://www.mydomain.com/video/#/contact

正如我所说的那样令人满意,不像Asual的搜索引擎优化解决方案那么理想,但足够干净。我无法在任何地方找到关于swfaddress'SEO示例的任何信息,而且我当然不知道足够的PHP来深入研究庞大的未注释代码。

哦,一定要将它包含在index.php的头部,它会确保你的swfs加载外部文件时你的链接不会搞砸。

< /ifModule >

希望在某些时候帮助某人。