【问题标题】:Htaccess: Language Detection Among with clean URLHtaccess:具有干净 URL 的语言检测
【发布时间】:2016-06-27 22:52:04
【问题描述】:

这可能是一个非常简单的问题,但我在论坛中进行了搜索,但没有找到适合我的答案。如果我可以从不同的线程中解开谜题,它可能就在那里,但重写规则并不是我最好的一面。

所以问题: 我想编写一个 RewriteRule 来清理 url 并将语言检测放在文件之前。 我从论坛中查看了诸如.htaccess for language detection, redirecting + clean urls.htaccess rule for language detection 之类的问题。

结合这两者,我提出了一个有时有效有时无效的解决方案。

我的结构:domain.com/subfolder/news.php?lang=en

我想要的是:domain.com/subfolder/en/news

到目前为止我的代码:

RewriteBase /subfolder/

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Language Detection
    RewriteRule ^(en|sv)/(.*)$  $2?lang=$1 [QSA,L]
    ## Remove .php extensions
    RewriteRule ^([^\.]+)$ $1.php [NC,L]`

这在某些路径上确实有效,但并非在所有路径上都有效(它们具有相同的结构)。 我该怎么做这个解决方案?

提前致谢!

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    尝试:

    RewriteBase /subfolder/
    
    # Language Detection
    RewriteRule ^(en|sv)/(.*)$  $2?lang=$1 [NC,QSA]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    ## Remove .php extensions
    RewriteRule ^([^\.]+)$ $1.php [NC,L]
    

    【讨论】:

    • RewriteRule ^(en|sv)/(.*)$ $2?lang=$1 [L,NC,QSA] 添加了“L”,该命令确实有效,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 2016-04-24
    • 2013-07-04
    相关资源
    最近更新 更多