Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.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
Apache 使用URL中的别名参数将旧子域重定向到新域_Apache_.htaccess_Redirect_Httpd.conf - Fatal编程技术网

Apache 使用URL中的别名参数将旧子域重定向到新域

Apache 使用URL中的别名参数将旧子域重定向到新域,apache,.htaccess,redirect,httpd.conf,Apache,.htaccess,Redirect,Httpd.conf,我成功地将旧子域重定向到新子域 这是httpd.conf的 <VirtualHost *:80> ServerName abcd.com ServerAlias *.abcd.com RewriteEngine on Redirect 301 / http://pqr.com/ </VirtualHost> 服务器名abcd.com ServerAlias*.abcd.com 重新启动发动机 重定向301/http://pqr.com/ 像

我成功地将旧子域重定向到新子域 这是httpd.conf的

<VirtualHost *:80>
   ServerName  abcd.com
   ServerAlias *.abcd.com
   RewriteEngine on
   Redirect 301 / http://pqr.com/
</VirtualHost>

服务器名abcd.com
ServerAlias*.abcd.com
重新启动发动机
重定向301/http://pqr.com/
像这样的链接:
mumbai.abcd.com/venue/320089 girgaum chowpatty
被重定向到
http://pqr.com/venue/320089-girgaum-chowpatty

但我想实现的是:
http://pqr.com/mumbai/320089-girgaum-chowpatty

另外,
mumbai.abcd.com
应该重定向到
http://prq.com/mumbai


我想获取服务器别名并附加到新域的url中。我该怎么做呢?

定义这些重定向的常见位置是web根目录中的
.htaccess
,而不是
httpd.conf
,因为它更灵活,不需要重新启动apache

因此,我建议您从
httpd.conf
中删除这些行:

RewriteEngine on
Redirect 301 / http://pqr.com/
并在root
index.php
旁边创建一个
.htaccess
文件,其中包含以下内容:

RewriteEngine on

# Redirect mumbai.abcd.com to prq.com/mumbai
RewriteCond %{HTTP_HOST} ^mumbai\.abcd\.com$
RewriteRule ^$ http://prq.com/mumbai/ [L,R=301]

# Redirect mumbai.abcd.com/something/123456-foo to prq.com/mumbai/123456-foo
RewriteCond %{HTTP_HOST} ^mumbai\.abcd\.com$
RewriteRule ^(.+)/([^/]+)(/?)$ http://prq.com/mumbai/$2 [L,R=301]
如果
mumbai.abcd.com
只是一个例子,并且您有更多的子域,请尝试以下方法:

RewriteEngine on

# Redirect *.abcd.com to prq.com/*
RewriteCond %{HTTP_HOST} ^([^/.]+)\.abcd\.com$
RewriteRule ^$ http://prq.com/%1/ [L,R=301]

# Redirect *.abcd.com/something/123456-foo to prq.com/*/123456-foo
RewriteCond %{HTTP_HOST} ^([^/.]+)\.abcd\.com$
RewriteRule ^(.+)/([^/]+)(/?)$ http://prq.com/%1/$2 [L,R=301]

定义这些重定向的常见位置是web根目录中的
.htaccess
,而不是
httpd.conf
,因为它更灵活,不需要重新启动apache

因此,我建议您从
httpd.conf
中删除这些行:

RewriteEngine on
Redirect 301 / http://pqr.com/
并在root
index.php
旁边创建一个
.htaccess
文件,其中包含以下内容:

RewriteEngine on

# Redirect mumbai.abcd.com to prq.com/mumbai
RewriteCond %{HTTP_HOST} ^mumbai\.abcd\.com$
RewriteRule ^$ http://prq.com/mumbai/ [L,R=301]

# Redirect mumbai.abcd.com/something/123456-foo to prq.com/mumbai/123456-foo
RewriteCond %{HTTP_HOST} ^mumbai\.abcd\.com$
RewriteRule ^(.+)/([^/]+)(/?)$ http://prq.com/mumbai/$2 [L,R=301]
如果
mumbai.abcd.com
只是一个例子,并且您有更多的子域,请尝试以下方法:

RewriteEngine on

# Redirect *.abcd.com to prq.com/*
RewriteCond %{HTTP_HOST} ^([^/.]+)\.abcd\.com$
RewriteRule ^$ http://prq.com/%1/ [L,R=301]

# Redirect *.abcd.com/something/123456-foo to prq.com/*/123456-foo
RewriteCond %{HTTP_HOST} ^([^/.]+)\.abcd\.com$
RewriteRule ^(.+)/([^/]+)(/?)$ http://prq.com/%1/$2 [L,R=301]

mod rewrite呢?mod rewrite呢?