Mod rewrite 将en.example.com重定向到example.com/index.php?language=en
我希望重定向以以下开头的地址:Mod rewrite 将en.example.com重定向到example.com/index.php?language=en,mod-rewrite,multilingual,lighttpd,Mod Rewrite,Multilingual,Lighttpd,我希望重定向以以下开头的地址: en.example.com/somefile.php 致: 在lighttpd中使用mod_重写模块。直到现在我才明白: $HTTP["host"] =~ "^en\.(.*)\.com$" { url.rewrite-once = ( "^/(.*)" => "/$1?language=en" ) } 但这似乎不起作用。如何
en.example.com/somefile.php
致:
在lighttpd中使用mod_重写模块。直到现在我才明白:
$HTTP["host"] =~ "^en\.(.*)\.com$" {
url.rewrite-once = (
"^/(.*)"
=>
"/$1?language=en"
)
}
但这似乎不起作用。如何使这项工作正常进行?请尝试以下操作。。如果对你有用的话 $HTTP[“host”]=~“^en.([^.]+.com[a-z0-9-]+.php)$”{ url.rewrite-one=( "^/(.*)" => “/$1?语言=英语” ) }试试这个:
$HTTP["host"] =~ "^en\.([^/.]+)\.com$" {
url.rewrite-once = (
"^/([^?]*)(\?(.*))?" => "http://%1/$1?language=en&$3"
)
}
试试这个
$HTTP["host"] !~ "^(en|fr)\.([^.]+\.com)$ {
url.rewrite-once = (
"^/(.*)" => "http://%2/$1&language=%1"
)
}
这应该重写子域。和/或fr.到URL字符串完整的任何域(包括TLD),并附加语言参数
示例:
http://en.example.com -> http://example.com/&language=en
http://fr.example.com/directory/ -> http://example.com/directory/&language=fr
为什么不使用PHP(
$\u SERVER['HTTP\u host']
)从HTTP主机提取语言?@Gumbo-没有不同的子域,搜索引擎不会发现此站点上有更多的语言。@tomasz:不如像http://example.com/en/…
?不要忘记在HTTP和HTML中正确的语言声明。&language=en
inhttp://example.com/&language=en
是URL路径的一部分,而不是URL查询的一部分。True。您可以使用“?”代替“&”,但如果URL已经有参数,则会中断。示例:http://en.example.com/?param1=12345 -> http://example.com/?param1=12345?language=en
您是否已经需要处理带有查询字符串参数的URL?
http://en.example.com -> http://example.com/&language=en
http://fr.example.com/directory/ -> http://example.com/directory/&language=fr