使用.htaccess将前缀重定向到文件夹
在.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
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]