重写root到文件夹中的所有内容

时间:2017-08-08 12:14:51

标签: .htaccess

对不起,我知道这个问题已被问了一百万次,但我无法让它发挥作用。我得到无限循环,或者它根本就没有重定向。

我希望以下内容重定向:

https://www.example.com
https://www.example.com/a/
https://www.example.com/b/
https://www.example.com/c/

https://www.example.com/shop/
https://www.example.com/shop/a/
https://www.example.com/shop/b/
https://www.example.com/shop/c/

到目前为止,我有:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^$ /shop/$1 [L,QSA,NC]

我尝试了一百万个选项,谁可以提供帮助?

我也尝试过:

RewriteCond %{REQUEST_URI} !^/shop/
RewriteRule ^(.*)$ /shop/$1

1 个答案:

答案 0 :(得分:0)

您可以使用以下一个班轮重定向:

class MapIncluding[K](ks: K*) {
  def unapplySeq[V](m: Map[K, V]): Option[Seq[V]] = if (ks.forall(m.contains)) Some(ks.map(m)) else None
}

val MapIncludingABC = new MapIncluding("a", "b", "c")
val MapIncludingAAndB = new MapIncluding("a", "b")

Map("a" -> 1, "b" -> 2) match {
  case MapIncludingABC(a, b, c) => println("Should not happen")
  case MapIncludingAAndB(1, b) => println(s"Value of b inside map is $b")
}

这会将所有请求重定向到 / shop / ,包括您的主页。

注意:这不会重写输入网址,这只是将新网址重定向到旧网址,更改浏览器地址栏中输入的网址。