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
使用.htaccess将前缀重定向到文件夹_.htaccess - Fatal编程技术网

使用.htaccess将前缀重定向到文件夹

使用.htaccess将前缀重定向到文件夹,.htaccess,.htaccess,在.htaccess中,我已经: RewriteRule ^(.*)/(.*.html)(\?.*)?$ /scripts/engine.php?path=$1/$2 [QSA,L,PT] RewriteRule ^(.*)/$ /scripts/engine.php?path=/$1/ [QSA,L,PT] RewriteRule ^$ /scripts/engine.php?path=/ [QSA,L,PT] 我想添加重定向 <prefix>.<domain>.co

在.htaccess中,我已经:

RewriteRule ^(.*)/(.*.html)(\?.*)?$ /scripts/engine.php?path=$1/$2 [QSA,L,PT]
RewriteRule ^(.*)/$ /scripts/engine.php?path=/$1/ [QSA,L,PT]
RewriteRule ^$ /scripts/engine.php?path=/ [QSA,L,PT]
我想添加重定向

<prefix>.<domain>.com to <prefix>.<domain>.com/<folder>

如何隐藏重定向?浏览器将显示prefix1.domain.com而不循环

在mod_rewrite中有两个概念,分别命名为重定向和内部重写

重定向

Mod_rewrite可以将请求从a重定向到b。这由规则后面的
[R]
标志指示。如果用户请求,例如
http://foo.example.com
,您可以将其重定向到
http://bar.example.com
。这样做的目的是告诉客户端页面已移动到
http://foo.com
并且他们应该将请求重做到该url。它将显示
http://foo.com
在地址栏中

内部重写

如果要显示的文件在同一文件系统中,Mod_rewrite还可以在内部重写url。这通过缺少
[R]
标志表示。如果用户请求
http://foo.example.com
,您可以在内部将其重写为
http://bar.example.com
,假设
foo.example.com
bar.example.com
都在同一个文件系统中。这将显示
http://foo.example.com
在地址栏中,但实际上会显示一个文件,该文件也可以通过
http://bar.example.com
。请注意,搜索引擎会认为它们是两个完全相同内容的不同页面,并可能因此惩罚您的网站

您的案例

在您的情况下,您似乎要求内部重写,而不是像标题所示的重定向。如果没有文件系统的结构,我就无法真正测试任何东西,但是这样的东西就足够了

RewriteRule ^path/to/subdomain1/(.*)$ path/to/subdomain2/$1 [L]

你能澄清问题是什么吗?mod_rewrite中有两件事:重定向
[R]
和内部重写(没有
[R]
)。当前正在发生什么,您希望发生什么?实际上,在重定向浏览器后,地址栏中显示是否有选项将其保留为前缀x1.domain.com????什么是原始url。地址栏中应该显示的url是什么?应该显示什么页面?在URL地址中使用前缀时如何使errorDocument工作?errorDocument是一种目录上下文类型的指令,但它可能应该放在virtualhost中。考虑一个新的问题,你清楚地勾勒出你所做的事情和你想要完成的事情。
RewriteRule ^path/to/subdomain1/(.*)$ path/to/subdomain2/$1 [L]