Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何用目录重定向域名_Php_.htaccess_Url Redirection - Fatal编程技术网

Php 如何用目录重定向域名

Php 如何用目录重定向域名,php,.htaccess,url-redirection,Php,.htaccess,Url Redirection,我有一个在线项目,它位于两个不同的领域:1)www.example.com和2)www.example.co.in。现在,我想重定向 www.example.co.in/category/ 到 我想通过.htaccess或服务器重定向它。我尝试了从只重定向域名而不是目录的服务器,也尝试了从.htaccess,当域和目录合并时,我可以只重定向域或只重定向目录。我的php项目。因此,如果在php中也可以,您可以给出建议。您可以尝试以下方法: RewriteCond %{HTTP_HOST} ^yo

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

www.example.co.in/category/

我想通过.htaccess或服务器重定向它。我尝试了从只重定向域名而不是目录的服务器,也尝试了从.htaccess,当域和目录合并时,我可以只重定向域或只重定向目录。我的php项目。因此,如果在php中也可以,您可以给出建议。

您可以尝试以下方法:

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]
如果您的请求包含现有目录名,这将重定向

回答你的评论。您可以尝试以下方法:

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]

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

.htaccess
中添加以下规则(位于网站www.example.co.in的根目录下):

或者使用302进行临时重定向


如果您还想将整个
.co.in
网站重定向到
.com
,请添加下一行(请记住
.com
网站的.htaccess中不应有这两条规则。)

如果出于任何原因,您必须在两个站点上使用相同的
.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;
   }
}

这可以通过
.htaccess
服务器和
php
全部实现。我们只需要更多信息:-类别/是真实的文件夹还是重新编写的URL?|您只想重定向此URL或以
类别/
开头的所有URL?为什么为sql server标记此URL?@Adarsh Rajput我只是将文件夹类别更改为陶瓷+行业,所以我想重定向以category@DivyeshJesadiya我的答案呢?您是否还希望将
co.in
的所有其他URL重定向到
.com
?只有“category/”应该重定向到“陶瓷+工业/”。现在完成了。我想将www.example.co.in/category/?company=vijay_陶瓷(带下划线的任何内容)重定向到www.example.com/陶瓷+工业/?company=vijay+陶瓷(下划线)到+),现在完成了。我想重定向www.example.co.in/category/?company=vijay_陶瓷(带下划线的任何内容)_(下划线)至www.example.com/陶瓷+工业/?company=vijay+陶瓷(下划线至+)
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;
   }
}