我正在使用此代码:
<ul>
<a href="?lang=pt"><li class="pt lang"></li></a>
<a href="?lang=en"><li class="us lang"></li></a>
</ul>
将输出类似这样的网址链接:
http://localhost/site/?lang=en
我的问题是关于SEO。 SEO医生扩展说这个网址不友好。我怎么解决这个问题?会议?怎么样?
这样的事情对我有用:
$_SESSION['lang']
答案 0 :(得分:0)
在会话中存储语言对于纯粹的内容页面来说并不是真正用户友好的 - 至少不是seo友好的,因为你可以为每种语言提供两个不同内容的网址。
最好将语言存储在网址中 - 或者使用不同的域来实现此目标
example.com/site/ - for english content
example.de/site/ - for german content
或将语言存储在网址
中example.com/de/site/
example.com/de/site/
在不更改完整内容的情况下执行此操作的简单方法是mod_rewrite并将example.com/en/site/
替换为example.com/site/
并将en
字符串添加到POST或GET参数
答案 1 :(得分: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:
http://something.com/?foo=1&bar=2&baz=3
可能会成为:
http://something.com/1/2/3
基本上将网址的第一部分分配给foo
,第二部分分配给bar
,第三部分分配给baz