.htaccess Htaccess:使用干净URL的语言检测

wkyowqbh  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(181)

我想编写一个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]`

这在某些路径上确实有效,但不是所有路径(它们具有相同的结构)。
我该怎么解决这个问题?

u5rb5r59

u5rb5r591#

尝试使用:

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]

相关问题