对于你们来说,这是一个棘手的问题。我的服务器上安装了一个WordPress站点,位于以下目录中:
的public_html / priestessentrepreneur / DSA / blogdsa
我有divinesparkastrology.com指向public_html / priestessentrepreneur / dsa
我有priestessastrology.com指向public_html / priestessentrepreneur / dsa / blogdsa
因此,我的(单数)WordPress安装过去常常将网站网址设置为http://www.divinesparkastrology.com/blogdsa,但我最近将其更改为http://www.priestessastrology.com/。当您输入http://www.divinesparkastrology.com/时,您正确转发到新网址http://www.priestessastrology.com/。但是,如果您尝试直接转到http://www.divinesparkastrology.com/blogdsa,则表示没有找到。
我希望http://www.divinesparkastrology.com/blogdsa及其所有子文件夹和文件指向http://www.priestessastrology.com/的新位置(目录结构从未更改过,只更改了基本URL)。如何更新.htaccess文件,以便新网址仍能正常运行,但当且仅当用户输入旧网址时,它们才会转发到新网址?
编辑:这是我/ dsa .htaccess文件中的当前内容:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^divinesparkastrology\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.divinesparkastrology\.com$
RewriteRule ^/?$ "http\:\/\/www\.priestessastrology\.com\/" [R=301,L]
这是我/ dsa / blogdsa .htaccess文件中的内容:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
答案 0 :(得分:0)
将以下RewriteRule
添加到WordPress .htaccess文件中:
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# added line
RewriteRule ^blogdsa/?$ / [R=301,L]
RewriteRule ^blogdsa/(.+)$ /$1 [R=301,L]
RewriteRule . /index.php [L]
注意:您将永远无法使用此规则访问blogdsa
WordPress页面。
答案 1 :(得分:0)
不要在.htaccess级别执行此操作。在httpd.conf级别执行,使用非常基本的
NameVirtualHost x.x.x.x
<VirtualHost x.x.x.x>
ServerName www.divinesparkastrology.com
ServerAlias divinesparkastrology.com *.divinesparkastrology.com
RedirectPermanent / http://priestessastrology.com
</VirtualHost>
通过这种方式,您可以执行重定向,而无需使用wordpress共享.htaccess,或者让两个站点共享一个共同的结构。 Apache将负责将所有请求重定向到新服务器名称,而无需在每次点击时加载/解析/重写.htaccess文件。
答案 2 :(得分:0)
将以下内容添加到 public_html / priestessentrepreneur / dsa / blogdsa 文件夹中.htaccess文件的顶部。在任何现有规则之前。
RewriteEngine On
RewriteBase /
#if request is on the divinesparkastrology domain
RewriteCond %{HTTP_HOST} ^(www\.)?divinesparkastrology\.com [NC]
#and it is for a folder starting with blogdsa
RewriteCond %{REQUEST_URI} ^/(blogdsa.*)$ [NC]
#redirect them to the same folder on the priestressastrology site
RewriteRule .* http://www.priestessastrology.com/%1 [L,R=301]
编辑:修改为仅包含divinesparkastrology而不包含www,更重要的是,由于blogdsa是两个网站的一部分,.htaccess应该放在blogdsa目录中,而不是dsa目录。