0

我正在使用这段代码:

<ul>
   <a href="?lang=pt"><li class="pt lang"></li></a>
   <a href="?lang=en"><li class="us lang"></li></a>
</ul>

这将输出一个像这样的 url 链接:

http://localhost/site/?lang=en

我的问题是关于 SEO。SEO Doctor 扩展说这个网址不友好。我该如何解决这个问题?与会议?如何?

像这样的东西对我有用:

$_SESSION['lang']
4

2 回答 2

0

将语言存储在会话中用于纯内容页面,对用户并不友好 - 至少对 seo 不友好,因为每种语言可以有两个具有不同内容的 url。

最好将语言存储在 url 中 - 或使用不同的域来实现这一点

example.com/site/    - for english content
example.de/site/     - for german content

或将语言存储在 url

example.com/de/site/
example.com/de/site/

在不更改完整内容的情况下执行此操作的一种简单方法是 mod_rewrite 并将字符串替换example.com/en/site/example.com/site/添加en到 POST 或 GET 参数

于 2013-11-11T22:25:42.383 回答
0

您尚未指定您使用的 HTTP 服务器。假设您使用的是 Apache,您可以通过在适当的 .htaccess 文件中clean URLs配置扩展来创建。mod_rewrite

例如,这是Drupal在其 .htaccess 文件中所做的:

<IfModule mod_rewrite.c>
  RewriteEngine on
  # Pass all requests not referring directly to files in the filesystem to
  # index.php.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

您可以使用类似的规则将“lang”(和任何其他)参数作为 URL 的一部分传递。因此,通过适当配置的重写规则,这样的 URL:

http://something.com/?foo=1&bar=2&baz=3

可能变成:

http://something.com/1/2/3

它本质上将 URL 的第一部分分配给 ,第二部分分配给 ,第三部分foo分配barbaz

于 2013-11-11T22:30:15.430 回答