我想将所有页面重定向到具有路径
的维护站点/software/web/app.php/update
所以我需要重定向所有页面,除了网站本身,否则我会得到一个重定向循环,这意味着我需要一个匹配该路径并取消它的规则。听起来很简单,但对我来说不起作用。
RedirectMatch(?!/ software / web / app.php / update)h * tp://abc.de/software/web/app.php/update
RedirectMatch ^(?!/ software / web / app.php / update)$ h * tp://abc.de/software/web/app.php/update
RedirectMatch ^ / software / web / app.php(?!/ update)$ h * tp://abc.de/software/web/app.php/update
没有这些帮助。我尝试了几乎所有我在这里和其他网站上找到的东西,但是经过几个小时的审判,我投降并请求你的帮助。提前谢谢。
答案 0 :(得分:0)
你可以用一个前缀条件的简单RewriteRule来做到这一点:
RewriteEngine on
RewriteCond %{REQUEST_URI} !(^/software/web/app.php/update$)
RewriteRule .* /software/web/app.php/update [R=307]
如果维护站点包含图像之类的内容,则需要从规则中排除这些图像,例如:
RewriteEngine on
RewriteCond %{REQUEST_URI} !(^/images/maintaining.jpg$)
RewriteCond %{REQUEST_URI} !(^/software/web/app.php/update$)
RewriteRule .* /software/web/app.php/update [R=307]
如果您要重定向到其他网站,则该规则可用于放置整个网址:
RewriteRule .* http://example.com/software/web/app.php/update [R=307]
作为参考,RewriteRule末尾的[R=307]
表示浏览器会看到重写的URL,但它是临时重定向。