重写规则以将所有子页面重定向到单个页面?

use*_*637 2 mod-rewrite apache-2.2

我有两个两个文件/etc/apache2/sites-available/foo/etc/apache2/sites-available/foo_maintenance

我使用的重写规则/etc/apache2/sites-available/foo

<Directory /var/www/public_html>
        Options +FollowSymlinks
        RewriteOptions inherit
        RewriteEngine on
        #
        RewriteCond %{HTTP_HOST} ^mysite\.com [NC]
        RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]
</Directory>
Run Code Online (Sandbox Code Playgroud)

以便所有mysite.com/*重定向到www.mysite.com

在我关闭站点进行维护后,如果用户导航到站点的子页面,例如 mysite.com/subdir/something.php,我想将它们重定向到 www.mysite.com,以便维护的 index.html将显示页面。

将所有流量从任何子页面重定向到的重写规则是什么www.mysite.com

Vla*_*kov 5

您可以采用以下方法:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite\.com [NC]
RewriteCond %{REQUEST_URI} !^/$ [NC]
RewriteRule ^.*$ http://www.mysite.com/ [L]
Run Code Online (Sandbox Code Playgroud)
  • 第 1 行在此上下文中启用重写引擎。
  • 第 2 行检查请求是否发送到mysite.com
  • 第 3 行检查请求的 URI 是否还不是/
  • 第 4 行将所有地址重定向到http://www.mysite.com/