只将根写入保留文件夹?

时间:2012-03-11 11:08:05

标签: .htaccess

我目前正在开发一个网站,并在/ hold文件夹中有一个保留页面。但是我也在root中安装了Wordpress。

我想要的是,如果用户访问:

www.domain.com

他们被转发到:

  

www.domain.com/hold

但是,如果有人访问www.domain.com/index.php,则会加载Wordpress。这样,我仍然可以通过访问/index.php来使用Wordpress,访问该网站的任何人通常都会看到保留页面。

我目前在我的.htaccess中有这个:

# Set a default home directory, (this subfolder always loads)
# Replace 'folder' with your subfolder name
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ /hold/ [R=301,L]
</IfModule>

# Always use www in the domain
# Replace 'example.com' with your domain name
RewriteEngine on
#RewriteCond %{HTTP_HOST} ^([a-z.]+)?domain\.com$ [NC]
#RewriteCond %{HTTP_HOST} !^www\. [NC]
#RewriteRule .? http://www.%1domain.com%{REQUEST_URI} [R=301,L]

RewriteBase /
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

1 个答案:

答案 0 :(得分:0)

您应该可以在不诉诸mod_rewrite的情况下执行此操作。怎么样:

RedirectMatch ^/$ http://www.yourdomain.com/hold/

请参阅the RedirectMatch documentation

但是,您可能最好设置第二个虚拟主机,这样您就可以将整个公共站点保留(使用类似RewriteRule ^.*$ /hold/ [R=503,L]的内容来获取503 HTTP状态代码),但仍然使用Wordpress管理员和站点通过不同的主机名自己。 (我不知道Wordpress是否会遇到这样的问题;我有一种感觉,它坚持认识它运行的域可能会给你带来问题,遗憾的是。)

(我怀疑你遇到了问题,因为你的第一个RewriteRule假定RewriteBase /已经发生了,虽然我使用RewriteBase已经有一段时间了,文档也没有清楚这一点。对于这么简单的一对案例,我完全避免RewriteBase以避免混淆。)