urlredirect到同一网站上的另一个页面

基本上我想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>