【问题标题】:rewrite rule for _escape_fragment_ [closed]_escape_fragment_的重写规则[关闭]
【发布时间】:2013-03-27 17:01:29
【问题描述】:

我想为

写一个重写规则

http://www.site.com/noticia/?_escaped_fragment_=noticia=/279/beto-cuevas3er-sencillo-dej-de-pensar

到:

http://www.site.com/noticia/#!noticia=/279/beto-cuevas3er-sencillo-dej-de-pensar

我已经尝试过了,但离我需要的还很远,对吧?

# Enable Rewrite Engine
RewriteEngine on

#Create friendly URL
RewriteRule ^index.php?_escaped_fragment=something=yes$ 
index.php/#!something=yes [L]

【问题讨论】:

  • AFAIK 你不能在其中重写#。它只是客户端。
  • 这似乎不是实现#! 的好方法。您试图使丑陋的版本返回与友好版本完全相同的内容。这违背了整个练习的要点,即丑陋的将返回内容的纯文本。

标签: ajax .htaccess seo


【解决方案1】:

通过httpd.conf启用mod_rewrite和.htaccess,然后把这段代码放到你.htaccessDOCUMENT_ROOT目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=([^=]+)=([^&]+) [NC]
RewriteRule ^$ /%1/#!%1=%2? [L,R,NE]

【讨论】:

  • 实际上这是将我重定向到 domain.com/#!noticia= 我期待 domain.com/noticia/​​#!noticia=......
  • 哦,好的,现在检查我的编辑。
  • 优秀!!但是之前添加另一个文件夹呢?如果我执行 RewriteRule ^$ /test/%1/#!%1=%2 可以吗? [L,R,NE]这是一个固定的文件夹,总是一样的
  • 它的工作!谢谢楼主!!
  • 这也违背了这一点,但绕过了被剥夺的#。当谷歌看到丑陋的版本重定向到友好的版本时,他们会知道这对他们没有用。整个问题是谷歌不会处理使用#s 来创建动态内容的页面。您将把它们放在一个循环中,试图找到您的纯内容。
猜你喜欢
  • 2011-04-11
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-18
相关资源
最近更新 更多