我想编写一个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]`
这在某些路径上确实有效,但不是所有路径(它们具有相同的结构)。
我该怎么解决这个问题?
1条答案
按热度按时间u5rb5r591#
尝试使用: