Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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 MOD_重写多路重定向匹配URL路径_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

使用Apache MOD_重写多路重定向匹配URL路径

使用Apache MOD_重写多路重定向匹配URL路径,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我找不到执行此永久重定向的方法: 发件人: 到 如果“it”是语言id,那么它也可以是“fr”、“de”、“en”等等。 我想这是可行的: RedirectMatch 301 http://(.*).example.com/oldpath/ http://www.example.com/$1/newpath/ 但由于包含的路径,它不起作用。但是去掉它,我就失去了关于语言的参数化信息。如何执行此类操作?您需要使用mod_rewrite而不是mod_alias来匹配主机名 RewriteEngin

我找不到执行此永久重定向的方法: 发件人:

如果“it”是语言id,那么它也可以是“fr”、“de”、“en”等等。 我想这是可行的:

RedirectMatch 301 http://(.*).example.com/oldpath/ http://www.example.com/$1/newpath/

但由于包含的路径,它不起作用。但是去掉它,我就失去了关于语言的参数化信息。如何执行此类操作?

您需要使用mod_rewrite而不是mod_alias来匹配主机名

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(?!www)(.+)\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/%1/$1 [R=301,L]

您需要使用mod_rewrite而不是mod_alias来匹配主机名

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(?!www)(.+)\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/%1/$1 [R=301,L]

谢谢你,巴拿马杰克!我无法在我的开发环境中尝试,因为出于某些原因,通配符不起作用,我将很快在阶段上测试它(我没有得到%1)。在这个规则之后,在这一点上,我应该有
http://www.example.com/it/newpath/...
,我现在是否可以添加更多规则,例如:
重定向匹配301/(.*)/newpath/(.*)/http://www.example.com/$1/newpath/$2/more/
重定向,例如。,从
http://www.example.com/it/newpath/test1
http://www.example.com/it/newpath/test1/more/
?重定向正在工作,但我无法测试它们在上一个规则之后是否工作(重写日志也不工作)。德克萨斯州!好的,上一个问题的答案是肯定的。谢谢@Panama Jack!我无法在我的开发环境中尝试,因为出于某些原因,通配符不起作用,我将很快在阶段上测试它(我没有得到%1)。在这个规则之后,在这一点上,我应该有
http://www.example.com/it/newpath/...
,我现在是否可以添加更多规则,例如:
重定向匹配301/(.*)/newpath/(.*)/http://www.example.com/$1/newpath/$2/more/
重定向,例如。,从
http://www.example.com/it/newpath/test1
http://www.example.com/it/newpath/test1/more/
?重定向正在工作,但我无法测试它们在上一个规则之后是否工作(重写日志也不工作)。德克萨斯州!好的,上一个问题的答案是肯定的。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(?!www)(.+)\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/%1/$1 [R=301,L]