我不在这里,目前正在阅读教程并使用python学习正则表达式。
我有一个网站,其中php文件http://www.example.com/showme.php?user=JOHN将加载JOHN的访问者页面。但是,我想让John拥有自己的虚荣URL,如john.example.com,并将其重写为http://www.example.com/showme.php?user=JOHN。
我知道它可以完成并且在摆弄它之后似乎是lighttpd mod_rewrite是要走的路。现在我很难过,因为我正在试图拿出正则表达式来匹配!
rewrite ("^![www]\.example\.com" => "www\.example\.com\?user=###");
我正在使用python re模块测试从john.example.com获取john的几种方法,并识别url的第一段不是www然后重定向。以上是我的审判。我是否在正确的大陆!
任何帮助都将在
中受到赞赏.
之前的网址的第一部分何时不是www
并且是其他内容 - 这样example.com就不会将其丢弃。.
之前获取网址的第一部分并将其标记为user=###
非常感谢
答案 0 :(得分:0)
使用lighttpd的mod-rewrite模块。将其添加到您的lighttpd.conf
文件中:
$HTTP["host"] != "www.example.com" {
$HTTP["host"] =~ "^([^.]+)\.example\.com$" {
url.rewrite-once = (
"^/?$" => "/showme.php?user=%1"
)
}
}
对于像href
这样的/dir/page.php
值,链接的域部分会自动从当前请求中添加,如浏览器的地址栏中所示。所以,如果您使用过www.example.com
;该链接指向htp://www.example.com/dir/page.php
,同样指向john.example.com
。
对于指向www.example.com
的所有链接,您需要使用www
访问该页面。只有当你从虚荣URL进行外部重定向到实际的重定向时才可能这样做,即用户仍然可以使用缩短的URL但是它们会被重定向到实际的URL。
$HTTP["host"] != "www.example.com" {
$HTTP["host"] =~ "^([^.]+)\.example\.com$" {
url.redirect = (
"^/?$" => "http://www.example.com/showme.php?user=%1"
)
}
}