如何使用目录重定向域名

时间:2015-10-23 06:13:04

标签: php .htaccess url-redirection

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

www.example.co.in/category/

www.example.com/ceramic+industry/

我想从服务器通过 .htaccess 重定向它。我尝试从服务器只重定向域名而不是目录,并尝试从 .htaccess ,我可以只重定向域或只有目录,而不是域和目录结合。我在php中的项目。所以,你也可以在php中提供建议。

2 个答案:

答案 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;
   }
}