行...
我已设置好以便在请求以下页面时(浏览器用户和服务器)
http://www.visualise.ca/?_escaped_fragment_=corona
网站返回以下内容(HTML快照)
http://www.visualise.ca/corona
“电晕”总是会发生变化,具体取决于用户或服务器请求的页面。它也可能是
http://www.visualise.ca/?_escaped_fragment_=anne-au-cherry
重定向到
http://www.visualise.ca/anne-au-cherry
由于
更新:好的,让我更清楚一点。我使用AJAX加载我的Wordpress帖子,加载时它们显示为http://www.visualise.ca/#!/corona。但谷歌要求将它们作为http://www.visualise.ca/?_escaped_fragment_=corona提供服务是不可抓取的,所以我修改了Wordpress来这样做。现在,Google可以抓取我的网页并对其内容编制索引并访问http://www.visualise.ca/corona处提供的HTML快照。
问题是,当我将http://www.visualise.ca/#!/corona链接粘贴到Facebook时,它似乎会读取http://www.visualise.ca/?_escaped_fragment_=corona并且无法读取内容。但是,当我直接粘贴其有效的http://www.visualise.ca/?_escaped_fragment_=corona链接时,它会显示http://www.visualise.ca/corona(HTML)。
所以我想如果我可以将http://www.visualise.ca/?_escaped_fragment_=corona重定向到http://www.visualise.ca/corona,它就可以解决我的问题。
这是现有的.htaccess文件
#--- DH-PHP handlers ---
AddHandler fastcgi-script fcg fcgi fpl
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/dispatch.fcgi
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
答案 0 :(得分:1)
许多人做的常见错误是尝试匹配包括查询字符串在内的整个URL。实际情况是:匹配网址时,模式会应用到路径部分,查询字符串必须单独匹配。
使用此规则:它会从此类网址/?_escaped_fragment_=corona
向/corona
发出301永久重定向(其中corona
可以是任何内容)。
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=([^&]*)
RewriteRule .* http://%{HTTP_HOST}/%1? [R=301,L]
答案 1 :(得分:0)
我猜你的问题确实是“我该如何进行这种重定向?”。所以答案就在这里:
我可以想到三种方式,每种方式都有细微差别。
执行重定向服务器端 这基本上意味着您在响应中设置重定向标头。在php中,您可以使用header函数执行此操作。它也可以执行delayed redirect,在这种情况下,您需要担心页面的内容。
使用html "http-equiv" meta tags使用客户端进行此操作。这样页面总是被加载。示例here。
通过javascript完成。多数民众赞成你基本的document.location.href事情。你需要找到一种方法将参数传递给javascript,或让你的JS从地址URL本身读取它。
由于我向您展示了3种方法,我真的希望这就是您所寻找的:P
看到评论后更新:
以上方法会导致URL发生变化。如果您不希望更改URL,但在原始页面上显示该其他页面的内容,您可以使用iframe(baaaad)执行此操作,或者执行正确的操作并设置URL rewriting。
:)
答案 2 :(得分:0)
RewriteEngine on
RewriteRule \?_escaped_fragment_=(.*?) /$1 [L,R=301]
你在寻找什么?