如何用目录重定向域名


how to redirect domain name with directory

我有一个在线项目,它在两个不同的域1)www.example.com和2)www.example.co.in。现在,我想重定向

www.example.co.in/category/

www.example.com/ceramic+industry/
我想通过重定向它。从服务器访问。我尝试从服务器,只重定向域名而不是目录,也尝试从。htaccess,我可以只重定向域或只重定向目录,而不是当域和目录结合。我的项目在php。所以,如果在php中也有可能,你可以给出建议。

.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;
   }
}

你可以试试:

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]

前两行允许您防止无限循环重定向。