基本上我想redirect到我的域的所有请求到一个特定的页面。 例如,将所有请求redirect到页面X,除非您已经在页面X上,在这种情况下,您应该只加载它。 但我的解决scheme只是创build一个无限循环:/
我试过了…
RewriteCond %{REQUEST_URI} !=/underconstruction.html RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !^/underconstruction.html RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
从你所描述的,你想要一个重写规则更像是:
RewriteRule ^(.*)$ $LINK [L,R=301]
换句话说,失去1美元。 这是将原始URL附加到新的URL,导致无限循环。
(我没有validation条件,但其中的一个应该工作,我认为)
上面的例子的问题是,RewriteRule行不会redirect到underconstruction.html,它们会大致redirect到同一个URL(因为$ 1匹配(。*))。
这个例子将301redirect所有的URL到“/underconstruction.html”:
RewriteEngine On RewriteCond %{REQUEST_URI} !=/underconstruction.html RewriteRule ^ /underconstruction.html [R=301]
(这翻译为“如果URI不是/underconstruction.html,redirect到/underconstruction.html”)
怎么样
<VirtualHost *:80> ... RedirectMatch !^/underconstruction.html http://yourdomain/underconstruction.html ... </VirtualHost>