【问题标题】:htaccess if parameter doesn't existshtaccess 如果参数不存在
【发布时间】:2015-05-29 13:58:44
【问题描述】:

我遇到了 htaccess 重定向问题。在我的网站上,我使用这样的 url 语言参数(是的,有两个 - 语言和国家/地区)

www.domain.com/en/spain/

如果用户访问直接链接,我会尝试将 [301] 重定向到默认语言

www.domain.com => www.domain.com/en/global for example

我用它来重定向无 www 链接。

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/en/global/$1 [R=301,L]

谢谢。

【问题讨论】:

    标签: apache .htaccess redirect


    【解决方案1】:

    试试这个:

    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^/?$ http://www.example.com/en/global/ [R=301,L] 
    

    这会重定向

       example.com
    

    www.example.com/en/global/
    

    【讨论】:

    • 谢谢,但我怎样才能将 www.domain.com[without lang] 重定向到 www.domain.com/en/global/ ?我需要使用默认语言将完全匹配的 www.domain.com[/] 重定向到 url
    • Divebo ,从 rewriteRule 行中删除 ? ,这样只有 domain.com / 被重定向,另外你需要将上面的代码放置到您的 htacces 的最顶部(就在 rewriteBase 行之后,以便它在您的 htaccess 中的其他规则之前执行。
    【解决方案2】:

    您需要在根 .htaccess 中设置 2 个不同的重定向规则:

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    
    RewriteRule ^/?$ /en/global/ [R=301,L]
    

    确保在测试前清除浏览器缓存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 2013-09-19
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多