我在两个不同的域名上有两个博客,我正在整合到一个网站上。我对服务器管理员不太熟悉,但我99%确定我想要做的是在bluehost上(因为它们允许.htaccess)和使用mod_rewrite(或类似的)。
目前我有blog1.com
和blog2.com
,帖子网址看起来像blog1.com/001
和blog2.com/030
。我希望输入其中一个网址的用户重定向到example.com/blog1/1
和example.com/blog2/30
这意味着我需要:
blog1.com/001
和 example.com/blog1/001
重定向到example.com/blog1/1
已更新
在http://htaccess.madewithlove.be第一&遇到了第二个条件,但规则并未触发。
第3次完全休息并返回怪异:http://example.com/blog1/030log1/030
RewriteEngine On
# redirect blog1.com/030 => example.com/blog1/30
RewriteCond %{HTTP_HOST} ^(?:www\.)?(blog1|blog2)\. [NC]
RewriteRule ^0*([1-9]+)/?$ http://example.com/%1/$1 [R=301,L]
# redirect example.com/blog1/030 => example.com/blog1/30
RewriteCond %{HTTP_HOST} ^(?:www\.)?example\.com$ [NC]
RewriteRule ^(blog1|blog2)/0*([1-9]+)/?$ /$1/$2 [NC,R=301,L]
# Never use www
RewriteCond %{HTTP_HOST} ^www.(([a-z0-9_]+.)?example.com)$ [NC]
RewriteRule .? http://%1%{REQUEST_URI} [R=301,L]]
答案 0 :(得分:2)
您可以在DOCUMENT_ROOT/.htaccess
和blog1
域的blog2
文件中使用此代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?:www\.)?(blog1|blog2)\. [NC]
RewriteRule ^0*([1-9]+)/?$ http://example.com/%1/$1 [R=302,L]
# rule2 for example.com/blog1/030 => example.com/blog1/30
RewriteCond %{HTTP_HOST} ^(?:www\.)?example\.com$ [NC]
RewriteRule ^(blog1|blog2)/0+([1-9]+)/?$ /$1/$2 [NC,R=302,L]
%1
是对blog1
中blog2
或RewriteCond
的反对引用^0*([1-9]+)
将匹配所有前导零,只留下$1
中的非零数字