我在根目录中有一个博客设置,在子目录中有一个电子商务商店,如:
http://example.com //the blog is here
http://example.com/ecommerce/ //this is the shop
我想交换它们以便
http://example.com //this is the shop
http://example.com/blog/ //the blog is here
我知道如何移动文件并进行所有数据库更改,以便博客和商店都能正常运行。问题在于重定向。如何将用于转到博客的链接重定向到新位置,而不会导致所有商店网址也重定向?
也就是说,我可以将电子商务目录中的重定向代码添加到根目录,这样可以处理商店的链接。但是,如果我然后从根目录重定向到博客目录以使博客生效,则商店链接将失败。
有办法做到这一点吗?
为了澄清这一点,以下是博客的一些链接:
http://example.com/
http://example.com/contact-us/
http://example.com/category/culture/
Abd这里有一些商店:
http://example.com/ecommerce/
http://example.com/ecommerce/contact_us.php
http://example.com/ecommerce/baby-power-id=558
答案 0 :(得分:0)
唯一非常强大的方法是将它们全部单独列出或按模式列出。但也许可以通过重定向文件不存在但在新位置存在的任何内容来实现。像这样:
RewriteCond %{REQUEST_URI} ^/([^/]+)$
RewriteCond %{CONTEXT_DOCUMENT_ROOT}/$1 !-f
RewriteCond %{CONTEXT_DOCUMENT_ROOT}/blog/$1 -f
RewriteRule ^ /blog/$1 [R,L=301]
它假设:
否则请告诉我。
答案 1 :(得分:0)
要单独或按模式重定向旧博客网址,您可以执行以下操作。
完成博客目录
对于每个完整目录,请执行以下操作:
RewriteRule ^(category/.*)$ /blog/$1 [R=301,L]
为每个目录使用一个,更改'类别'作为每个目录的名称,它将被重定向到' / blog /'下面的相同名称。显然,商店不能使用相同的目录名称。
单独的博客网址
对于其他每个网址,都有一条规则:
Redirect 301 /contact-us/ /blog/contact-us/
这应该可以在不影响商店的情况下移动博客网址。
<强>商店强>
对于商店,只需使用:
RewriteRule ^ecommerce/(.*)$ /$1 [R=301,L]