发出redirecturi以删除lighttpd下的path中的“http://”

所以我试图做lighttpd下的这个redirect,但无论如何我只是不能得到它的工作。 我试过寻找一个debugging日志和所有。

说我已经进入http://mydomain.com/http://test.com我想lighttpdredirect到http://mydomain.com/test.com 。

这是我的conf,据我所知它应该工作。 这就像lighttpd只是忽略redirect规则(另一个正在工作)。

redirect是最后一个。

# Debian lighttpd configuration file # ############ Options you really have to take care of #################### ## modules to load # mod_access, mod_accesslog and mod_alias are loaded by default # all other module should only be loaded if neccesary # - saves some time # - saves memory server.modules = ( "mod_access", "mod_alias", "mod_accesslog", "mod_compress", "mod_rewrite", "mod_redirect", "mod_fastcgi", # "mod_evhost", # "mod_usertrack", # "mod_rrdtool", # "mod_webdav", "mod_expire", # "mod_flv_streaming", "mod_evasive" ) #### performance options (aggressive timeouts) server.max-keep-alive-requests = 6 server.max-keep-alive-idle = 15 server.max-read-idle = 15 server.max-write-idle = 15 connection.kbytes-per-second = 256 evasive.max-conns-per-ip = 5 #### name the server daemon publicly displays server.tag = "'; DROP TABLE servertypes; --" #### disable ssl if not needed ssl.engine = "disable" ## a static document-root, for virtual-hosting take look at the ## server.virtual-* options server.document-root = "/var/www/" ## where to upload files to, purged daily. server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) ## where to send error-messages to server.errorlog = "/var/log/lighttpd/error.log" ## files to check for if .../ is requested index-file.names = ( "index.php", "index.html", "index.htm", "default.htm", "index.lighttpd.html" ) ## Use the "Content-Type" extended attribute to obtain mime type if possible # mimetype.use-xattr = "enable" ## MimeType handling ## ------------------- ## ## Use the "Content-Type" extended attribute to obtain mime type if ## possible ## mimetype.use-xattr = "disable" ## ## mimetype mapping ## mimetype.assign = ( ".pdf" => "application/pdf", [...] ".oth" => "application/vnd.oasis.opendocument.text-web", # make the default mime type application/octet-stream. "" => "application/octet-stream", ) #### accesslog module accesslog.filename = "/var/log/lighttpd/access.log" ## deny access the file-extensions # # ~ is for backupfiles from vi, emacs, joe, ... # .inc is often used for code includes which should in general not be part # of the document-root url.access-deny = ( "~", ".inc" ) ## # which extensions should not be handle via static-file transfer # # .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" ) ######### Options that are good to be but not neccesary to be changed ####### ## Use ipv6 only if available. # include_shell "/usr/share/lighttpd/use-ipv6.pl" ## bind to port (default: 80) # server.port = 81 ## bind to localhost only (default: all interfaces) ## server.bind = "localhost" ## error-handler for status 404 #server.error-handler-404 = "/error-handler.html" #server.error-handler-404 = "/error-handler.php" ## to help the rc.scripts server.pid-file = "/var/run/lighttpd.pid" ## ## Format: <errorfile-prefix><status>.html ## -> ..../status-404.html for 'File not found' #server.errorfile-prefix = "/var/www/" ## virtual directory listings dir-listing.encoding = "utf-8" server.dir-listing = "disable" ## send unhandled HTTP-header headers to error-log #debug.dump-unknown-headers = "enable" ### only root can use these options # # chroot() to directory (default: no chroot() ) #server.chroot = "/" ## change uid to <uid> (default: don't care) server.username = "www-data" ## change uid to <uid> (default: don't care) server.groupname = "www-data" #### compress module compress.cache-dir = "/var/cache/lighttpd/compress/" compress.filetype = ("text/plain", "text/html", "application/x-javascript", "text/css", "image/png") #### url handling modules (rewrite, redirect, access) # url.rewrite = ( "^/$" => "/server-status" ) # url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" ) # # define a pattern for the host url finding # %% => % sign # %0 => domain name + tld # %1 => tld # %2 => domain name without tld # %3 => subdomain 1 name # %4 => subdomain 2 name # # evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/" #### expire module # expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes") $HTTP["url"] =~ "\.(jpg|gif|png|css|js)$" { expire.url = ( "" => "access 7 days" ) } #### rrdtool # rrdtool.binary = "/usr/bin/rrdtool" # rrdtool.db-name = "/var/www/lighttpd.rrd" #### variable usage: ## variable name without "." is auto prefixed by "var." and becomes "var.bar" #bar = 1 #var.mystring = "foo" ## integer add #bar += 1 ## string concat, with integer cast as string, result: "www.foo1.com" #server.name = "www." + mystring + var.bar + ".com" ## array merge #index-file.names = (foo + ".php") + index-file.names #index-file.names += (foo + ".php") #### external configuration files ## mimetype mapping # include_shell "/usr/share/lighttpd/create-mime.assign.pl" ## load enabled configuration files, ## read /etc/lighttpd/conf-available/README first include_shell "/usr/share/lighttpd/include-conf-enabled.pl" fastcgi.server = ( ".php" => (( "bin-path" => "/usr/bin/php-cgi", "socket" => "/tmp/php.socket", "max-procs" => 1, "min-procs" => 1, "bin-environment" => ( "PHP_FCGI_CHILDREN" => "5", "PHP_FCGI_MAX_REQUESTS" => "500" ), "broken-scriptfilename" => "enable" ))) $HTTP["host"] =~ "^78\.129\.251\.116$" { url.redirect = ( "^/(.*)" => "http://dev.samp.im" ) } $HTTP["host"] =~ "^www\.(.*)" { url.redirect = ( "^/(.*)" => "http://%1/$1" ) } $HTTP["host"] =~ "^dev\.samp\.im$" { dir-listing.activate = "enable" } $HTTP["host"] =~ "^isitup\.org$" { url.redirect = ( "^/http://(.*)" => "http://isitup.org/$1" ) url.rewrite-once = ( "^/$" => "/index.php", "^/mint/(.*)$" => "/mint/$1", "^/fever/(.*)$" => "/fever/$1", "^/check.php(.*)$" => "/check.php$0", "^/offline$" => "/offline.php", "^/error$" => "/error.php", "^/save/(.*)$" => "/index.php?d=$1&save", "^/d/(.*)$" => "/index.php?d=$1", "^/clear$" => "/index.php?clear", "^/(.*)\.(json|txt)$" => "/check.php?domain=$1&output=$2", "^/(.*)\.(php|html|png|jpg|css|gif|js)" => "$0", "^/(.*)$" => "/check.php?domain=$1" ) } 

url.rewrite-onceurl.redirect之前处理url.rewrite-once – 重写的最终规则匹配请求,并修改它:

 "^/(.*)$" => "/check.php?domain=$1" http://mydomain.com/http://test.com -> http://mydomain.com/check.php?domain=http://test.com 

此重写发生然后redirect评估; 它不再匹配。 你需要删除有问题的重写成功redirect。

尝试逃避冒号和斜杠并捕获string的结尾:

 url.redirect = ( "^/http\:\/\/(.*)$" => "http://isitup.org/$1" )