2015-02-07 110 views
2

任何人都可以帮我设置这两个重定向?htaccess 301自定义重定向

1)

From: old-domain.com/forum/idF-forum-name 
To: new-domain.com/forum/forum-name.idF 

凡IDF是一个变量数, “原始名称” 是可变短语

2)

From: old-doimain.com/forum/idF-forum-name/idT-thread-name 
To: new-domain.com/forum/idF-forum-name/thread-name.idT 

凡IDT是可变数量,和“线程名称”是一个可变的短语。 Somtimes有正在使用的网址后,IDT线程名称的另一个部分,例如:

old-doimain.com/forum/idF-forum-name/idT-thread-name/#idP 

哪里IDP是一个随机数。我想将这种URL重定向到“new-domain.com/folder/subfolder/thread-name.idT”

回答

1

案例1:如果/forum/目录中没有.htaccess。

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^(?:www\.)?old-domain\.com$ [NC] 
RewriteRule ^forum/([^/]+)/([^-]+)-([^/]+)/?$ http://new-domain.com/forum/$1/$3.$2 [L,NC,R=302,NE] 

RewriteCond %{HTTP_HOST} ^(?:www\.)?old-domain\.com$ [NC] 
RewriteRule ^forum/([^-]+)-([^/]+)/?$ http://new-domain.com/forum/$2.$1 [L,NC,R=302,NE] 

案例2:如果在/forum/目录中的.htaccess。

您可以在/forum/.htaccess文件中使用此代码:

RewriteEngine On 
RewriteBase /forum/ 

RewriteCond %{HTTP_HOST} ^(?:www\.)?old-domain\.com$ [NC] 
RewriteRule ^([^/]+)/([^-]+)-([^/]+)/?$ http://new-domain.com/forum/$1/$3.$2 [L,R=302,NE] 

RewriteCond %{HTTP_HOST} ^(?:www\.)?old-domain\.com$ [NC] 
RewriteRule ^([^-]+)-([^/]+)/?$ http://new-domain.com/forum/$2.$1 [L,NE,R=302] 
+0

您好,首先感谢您SOOOOO多的回复。我可以在论坛文件夹中创建一个.htaccess。问题是我还要配置另一个重定向:所有与帖子中写入的结构不同的结构的url必须重定向到新的域。因此,旧域/ *必须重定向到new-domain.com/*,其中*可以是与第一篇文章中写入的两种类型不同的任何URL。这可能吗? – testermaster 2015-02-08 05:09:22

+0

如果'/ forum/.htaccess'尚未存在,则不需要创建它,并从上面的'Case 1'中摘录片段。 – anubhava 2015-02-08 05:14:21

+0

你好@anubhava,我可以问你如何添加一个规则来将'/ forum /'中的所有URL重定向到与https://www.new-domain.com/不同的地方论坛/'?谢谢! :) – testermaster 2015-03-29 21:01:54