2013-04-23 53 views
0

我需要帮助我重写从lighthttpd到apache httpd的规则。虽然我以前从未使用lighthttpd。我希望有人能帮我重写这段代码。即使在Apache中,我也有点厌倦了Rule系统,但并没有那么糟糕。RewriteRule转换

"^install/?$" => "install.php", 

"^/doc/([a-z]+)/?$" => "doc.php?cat=$1", 
"^/~([a-z.]+)/doc/([a-z]+)/?$" => "doc.php?project=$1&cat=$2", 

"^/~([a-z.]+)/?$" => "index.php?project=$1", 
"^/~([a-z.]+)/api/([a-z]+)/?$" => "index.php?project=$1&mode=$2", 

"^/all/?$" => "list.php", 
"^/api/([a-z]+)/all/?$" => "list.php?mode=$1", 
"^/~([a-z.]+)/all/?$" => "list.php?project=$1", 
"^/~([a-z.]+)/api/([a-z]+)/all/?$" => "list.php?project=$1&mode=$2", 
"^/rss/?$" => "list.php?rss=1", 
"^/~([a-z.]+)/rss/?$" => "list.php?project=$1&rss=1", 
"^/all/([0-9]+)/?$" => "list.php?page=$1", 
"^/api/([a-z]+)/all/([0-9]+)/?$" => "list.php?mode=$1&page=$2", 
"^/~([a-z.]+)/all/([0-9]+)/?$" => "list.php?project=$1&page=$2", 
"^/~([a-z.]+)/api/([a-z]+)/all/([0-9]+)/?$" => "list.php?project=$1&mode=$2&page=$3", 

"^/([0-9]+)/?$" => "show.php?id=$1", 
"^/~([a-z.]+)/([0-9]+)/?$" => "show.php?project=$1&id=$2", 
"^/([0-9]+)/([a-z|A-Z]+)/?$" => "show.php?id=$1&mode=$2", 
"^/~([a-z.]+)/([0-9]+)/([a-z|A-Z]+)/?$" => "show.php?project=$1&id=$2&mode=$3", 
"^/api/([a-z|A-Z]+)/([0-9]+)/?$" => "show.php?mode=$1&id=$2", 
"^/~([a-z.]+)/api/([a-z|A-Z]+)/([0-9]+)/?$" => "show.php?project=$1&mode=$2&id=$3", 
"^/([0-9]+)/([0-9]+)/?$" => "show.php?id=$1&hash=$2", 
"^/~([a-z.]+)/([0-9]+)/([0-9]+)/?$" => "show.php?project=$1&id=$2&hash=$3", 
"^/([0-9]+)/([0-9]+)/([a-z|A-Z]+)/?$" =/> "show.php?id=$1&hash=$2&mode=$3", 
"^/~([a-z.]+)/([0-9]+)/([0-9]+)/([a-z|A-Z]+)/?$" => "show.php?project=$1&id=$2&hash=$3&mode=$4", 
"^/api/([a-z|A-Z]+)/([0-9]+)/([0-9]+)/?$" => "show.php?mode=$1&id=$2&hash=$3", 
"^/~([a-z.]+)/api/([a-z|A-Z]+)/([0-9]+)/([0-9]+)/?$" => "show.php?project=$1&mode=$2&id=$3&hash=$4", 
"^/api/([a-z|A-Z]+)/([0-9]+)/([0-9]+)/(.*)$" => "show.php?mode=$1&id=$2&hash=$3&password=$4", 
"^/~([a-z.]+)/api/([a-z|A-Z]+)/([0-9]+)/([0-9]+)/(.*)$" => "show.php?project=$1&mode=$2&id=$3&hash=$4&password=$5" 

,我转换的唯一的事情就是第一行

RewriteRule ^install/.* install.php 
+0

是我所熟悉的正则表达式 – KeiKun 2013-04-23 10:13:27

+0

虽然我从来没有使用正则表达式与重写规则。我也不是lighthttpd用户。所以我有点困惑他们如何写他们的。 url重写 – KeiKun 2013-04-23 10:14:47

回答

0

所以

"^install/?$" => "install.php" 

变成

RewriteRule ^install/?$ install.php [L] 

"^/doc/([a-z]+)/?$" => "doc.php?cat=$1" 

变成

RewriteRule ^doc/([a-z]+)/?$ doc.php?cat=$1 [L] 

"^/~([a-z.]+)/doc/([a-z]+)/?$" => "doc.php?project=$1&cat=$2", 

变成

RewriteRule ^~([a-z.]+)/doc/([a-z]+)/?$ doc.php?project=$1&cat=$2 [L] 

"^/~([a-z.]+)/?$" => "index.php?project=$1", 

变成

RewriteRule ^~([a-z.]+)/?$ index.php?project=$1 [L] 

+0

imma试试这个。它可能需要一段时间 – KeiKun 2013-04-23 10:56:57

+0

我认为第二个'RewriteRule'中存在拼写错误(请参见引号)。 – cyroxx 2013-04-23 11:09:30

+0

不好意思。我试图遵循你所做的,但是。有些没有工作 这是没有工作的列表。你能给我一些这样的格式吗? http://pastebin.com/cbgV0Lc7 – KeiKun 2013-04-23 11:58:06