如何将站点上的所有/任何页面请求重定向到同一站点上的某个静态页面

时间:2016-06-07 15:01:14

标签: apache .htaccess redirect httpd.conf

我需要在网站上的每个页面请求 - 200,404等 - 登陆网站上的固定页面,在这种情况下index_new.php

我尝试了其他SO和ServerFault的答案,并且我继续获得无限的重定向循环。

这是我在httpd.conf中的代码:

<VirtualHost *:80>
    ServerName my.example.com
    ServerAlias *.my.example.com
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/index_new.php
    RewriteRule ^(.*)$ /index_new.php [R=301,L]
</VirtualHost>

备注:

  1. 网站的.htaccess文件为空
  2. index_new.php”页面是静态的,没有PHP标题(“location:”)内部重定向等。
  3. 我重新启动了apache

1 个答案:

答案 0 :(得分:0)

否定前瞻应该做,并且可以使用RedirectMatch而不是使用mod_rewrite轻松完成一行:

RedirectMatch permanent ^/(?!index_new.php).* /index_new.php

清除浏览器缓存和/或尝试curl -I http://my.example.com/wahtever以确保其正常工作

为了理智,在virtualhost中指定documentroot和允许访问的目录条目(需要所有授予/允许所有,具体取决于版本),因为你没有使用.htaccess(顺便说一句恭喜!你是为数不多的做事之一从一开始),为了安全起见,将DocumentRoot的目录设置为“AllowOverride none”。