我有一个在线项目,它在两个不同的域上1)www.example.com和2)www.example.co.in。现在,我想重定向
www.example.co.in/category/
到
www.example.com/ceramic+industry/
我想从服务器通过 .htaccess 或重定向它。我尝试从服务器只重定向域名而不是目录,并尝试从 .htaccess ,我可以只重定向域或只有目录,而不是域和目录结合。我在php中的项目。所以,你也可以在php中提供建议。
答案 0 :(得分:1)
你可以试试这个:
RewriteCond %{HTTP_HOST} ^your.first.domain$
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ http://your.second.domain/$1 [R,L]
如果您的请求包含现有目录名,则会重定向。
回答你的评论。你可以试试这个:
RewriteCond %{ENV:REDIRECT_FINISH} !^$
RewriteRule ^ - [L]
RewriteCond %{QUERY_STRING} ^company=(.*)\_(.*)$
RewriteRule ^(.*)$ /$1?company=%1+%2 [R,L,E=FINISH:1]
前两行允许您阻止无限循环重定向。
答案 1 :(得分:1)
在.htaccess
中添加以下规则(位于www.example.co.in网站的根目录):
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^category/(.*)$ http://www.example.com/ceramic+industry/$1 [L,R=301]
或使用302进行临时重定向。
如果您还想将整个.co.in
网站重定向到.com
那么请添加下一行(请记住在.com
网站的.htaccess中,这两条规则不应该存在。)
RewriteRule ^category/(.*)$ http://www.example.com/ceramic+industry/$1 [L,R=301]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
如果出于任何原因您必须在两个网站上使用相同的.htaccess
,请使用以下条件:
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^category/(.*)$ http://www.example.com/ceramic+industry/$1 [L,R=301]
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
<强> ============================================ ================ 强>
解决您的其他问题:
这可以通过PHP完成。正如我猜到category/
之后的所有URL都由一个PHP页面处理。
在那个PHP页面中代码在顶部:
if(isset($_GET['company'])){
$company=$_GET['company'];
$companyNew=str_replace('_','+',$company);
if($company!=$companyNew){
header("location:/category/?company="+$companyNew,true,301);
//header("location:/ceramic+industry/?company="+$companyNew,true,301);
exit;
}
}