src/main/scala/s3/website/model/push.scala in s3_website-2.1.5 vs src/main/scala/s3/website/model/push.scala in s3_website-2.1.6
- old
+ new
@@ -153,11 +153,20 @@
object Redirect {
def resolveRedirects(implicit config: Config): Seq[Redirect] =
config.redirects.fold(Nil: Seq[Redirect]) { sourcesToTargets =>
sourcesToTargets.foldLeft(Seq(): Seq[Redirect]) {
(redirects, sourceToTarget) =>
- redirects :+ Redirect(sourceToTarget._1, sourceToTarget._2)
+ redirects :+ Redirect(sourceToTarget._1, applySlashIfNeeded(sourceToTarget._2))
}
+ }
+
+ private def applySlashIfNeeded(redirectTarget: String) = {
+ val isExternalRedirect = redirectTarget.matches("https?:\\/\\/.*")
+ val isInSiteRedirect = redirectTarget.startsWith("/")
+ if (isInSiteRedirect || isExternalRedirect)
+ redirectTarget
+ else
+ "/" + redirectTarget // let the user have redirect settings like "index.php: index.html" in s3_website.ml
}
}
case class S3File(s3Key: String, md5: MD5)