这可能是一个非常简单的问题,但我通过论坛搜索而没有找到适合我的答案。如果我可以从不同的线程中解决这个难题,它可能就在那里,但重写规则并不是我最好的一面。
所以问题: 我想编写一个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]`
这确实在某些路径上有效,但并非在所有路径上都有效(它们具有相同的结构)。 我应该如何制作这个解决方案?
先谢谢!
答案 0 :(得分: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]