【发布时间】:2015-06-30 16:57:49
【问题描述】:
我完全被难住了。希望你能帮忙。我刚刚花了一个月的时间在 Concrete5 版本 7.3.1 中重新开发我们的网站,最新版本,我已经准备好启动了。这是一个多语言网站,我们的 SEO 人员建议不要在默认语言(英语)的 URL 中包含该语言,因为这会将我们的主页从 domain.com/ 更改为 domain.com/en/,以及我们的旧网站默认设置语言在基本目录中。
Concrete5 不支持这一点,所以基本上我希望通过一些 .htaccess 技巧来实现这一点,但我无处可去。
具体的 5 个 url 是 domain.com/index.php/en/path/to/page,所以所有页面都来自 index.php。有一个重写规则如下,可以对用户隐藏 index.php 并使 url 漂亮。
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME}/index.html !-f
#RewriteCond %{REQUEST_FILENAME}/index.php !-f
#RewriteRule . index.php
我想进一步添加一种方法,从不包含它的 url 为服务器端添加 /en/。即
RewriteRule ^/index.php/(.*) ^/index.php/en/$1 [L]
然后我可以从 url 中删除 en 并且系统仍然可以工作。
我已经尝试在具体的重写之前(没有 index.php)、之后和多种不同的组合,但不断收到 401 错误并且很难诊断问题,因为查看生成的 url 并不容易。
任何帮助都将不胜感激,因为我必须在发布前弄清楚这一点。
【问题讨论】:
-
这不是你可以在没有大量工作和非常喜怒无常的
.htaccess的情况下完成的事情,事实上,将您的网站设置为/en并没有任何 SEO 问题实际上可能会提高您的排名。也就是说,您使用的是什么版本的 concrete5? -
如果您希望 /en 成为唯一在域根目录下解析的路径,具体取决于站点的大小,您始终可以向在路径中解析的页面添加其他路径,而无需/en。我意识到这可能不是一个实用的解决方案,但它可以解决问题:) 编辑:也就是说,在页面属性中添加通过 CMS 的路径。
-
嗨,Korvin,是的,同意,将根放在 /en 没有 SEO 问题,但是从一个曾经在 / 有根的站点移动,然后将其更改为 /en .我可以进行 301 重定向,但仍然会失去一些“链接汁”,正如我的 SEO 人员所说的那样。我正在使用 Concrete5 5.7.3.1。
-
coupdecoop,谢谢你,但我还没有找到让 Concrete5 解决根路径的方法。 IE。具体5 有一个根主页,它重定向到/en/,它有我真正的主页。如果我在 / 处添加解析路径,我要么会显示虚拟主页,而不是我的真实主页,要么会陷入重定向循环。
-
@a575606 我相信@coupdecoup 正在谈论更多关于
/en/example之类的子页面,我可以让我在/example显示,但我仍然不确定301 重定向会损害您的页面排名大大地。网站不断移动,谷歌并不愚蠢。例如,我不知道有任何方法可以在没有痛苦和代码的情况下实现这一目标;/de是要解析到德国主页,还是/en/de?
标签: .htaccess mod-rewrite url-rewriting seo concrete5