【问题标题】:SEO friendly URL with using one variable each languageSEO 友好的 URL,每种语言使用一个变量
【发布时间】:2014-06-14 01:50:20
【问题描述】:

我有以下情况:

我们的实际 URL 结构如下:

http://www.silentdivers.com/index.php?lang=en 英语,fr 法语,ge fr 德语

现在我喜欢 - 或者我想你建议什么是最好的方法:

http://www.silentdivers.com/de/ 用于德语的 index.php

等等。

我需要帮助如何在 htaccess 文件中执行此操作。

【问题讨论】:

    标签: variables url seo


    【解决方案1】:

    您的重写规则(在 .htaccess 中)必须如下所示:

    RewriteEngine  on
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule    ^([a-z]{2})/$  /index.php?lang=$1
    
    • ^/ 表示以斜线开头
    • ([a-z]{2}) 是用引号括起来的两个小写字母(语言代码),以将它们捕获为 $1
    • /$ 是“以斜线结尾”
    • 它会在内部使用 lang 参数重写为您的 index.php 脚本

    您可以添加另一个规则来处理您想要执行此操作的其他文件。例如,这将使/en/discoverscubadiver 工作通过将其转发到discoverscubadiver.php?lang=en

    RewriteRule    ^([a-z]{2})/([a-z]+)$  /$2.php?lang=$1
    

    【讨论】:

    • 嗨斯蒂芬像这样,我需要为我拥有的每个站点/文件做些什么?例如,如果我有silentdivers.com/discoverscubadiver.php?lang=en 并且我想获得silentdivers.com/en/discoverscubadiver 我需要做什么?
    • 我已经更新了我的答案,添加了一条适用于其他文件的附加规则。
    • 嗨,我在过去几周尝试解决了这个问题。但没有解决办法。我现在有以下内容: 这是我的 htaccess:选项 +FollowSymLinks RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteEngine on RewriteRule ^/([a-z]{2})/$ /index.php ?lang=$1 RewriteRule ^/([a-z]{2})/([a-z]+)$ /$2.php?lang=$1 然后我尝试如下:link 得到 404 错误。
    • RewriteEngine 需要出现在任何 RewriteCondRewriteRule 之前。如果您在 .htaccess 中执行此操作,您的重写规则不应以 / 开头,因为这是在该上下文中假定的。我会稍微更新一下我的答案。
    • 好的,谢谢。我改变了一些东西,但它现在可以在我需要的时候使用。
    猜你喜欢
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    • 2011-10-21
    • 2011-08-25
    • 1970-01-01
    相关资源
    最近更新 更多