Laravel 将子域重定向到域,同时保留路径和查询字符串
我有一个子域,我想重定向到主域(使用Laravel 将子域重定向到域,同时保留路径和查询字符串,laravel,.htaccess,mod-rewrite,url-redirection,Laravel,.htaccess,Mod Rewrite,Url Redirection,我有一个子域,我想重定向到主域(使用.htaccess),如下所示: https://abc.example.com我想将其重定向到https://www.example.com https://abc.example.com/path/page-name至https://www.example.com/path/page-name https://abc.example.com/path/page-name?test=12&test1=12至https://www.example.com/pa
.htaccess
),如下所示:
https://abc.example.com
我想将其重定向到https://www.example.com
https://abc.example.com/path/page-name
至https://www.example.com/path/page-name
https://abc.example.com/path/page-name?test=12&test1=12
至https://www.example.com/path/page-name?test=12&test1=12
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$ [NC]
RewriteRule ^ http://www.example.com/suberror [L,R]
我正在使用Laravel。在这一行:
RewriteRule ^ http://www.example.com/suberror [L,R]
没有模式
意味着根据请求的URI检查正则表达式
将其更改为:
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R]
这部分^(.*)$
是模式
,它将通过$1
在替换中呈现
如果可以,将[L,R]
更改为[L,R=301]
为永久重定向,因为R
单独表示R=302
,这是临时的 在这一行:
RewriteRule ^ http://www.example.com/suberror [L,R]
没有模式
意味着根据请求的URI检查正则表达式
将其更改为:
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R]
这部分^(.*)$
是模式
,它将通过$1
在替换中呈现
如果可以,将[L,R]
更改为[L,R=301]
为永久重定向,因为R
单独表示R=302
,这是临时的 假设:
- 您有1个子域(如示例中所述)
- 子域和主域指向文件系统上的同一区域(它们共享一个公共根)
请在.htaccess
文件顶部尝试以下操作:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^abc\.example\.com [NC]
RewriteRule ^ http://www.example.com%{REQUEST_URI} [R,L]
请求的URL路径保存在request\u URI
服务器变量中。请求中的查询字符串将传递到替换(目标),而无需任何额外工作。假设:
- 您有1个子域(如示例中所述)
- 子域和主域指向文件系统上的同一区域(它们共享一个公共根)
请在.htaccess
文件顶部尝试以下操作:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^abc\.example\.com [NC]
RewriteRule ^ http://www.example.com%{REQUEST_URI} [R,L]
请求的URL路径保存在request\u URI
服务器变量中。请求中的查询字符串将传递到替换(目标),而无需任何额外工作。您说您有“子域”(单数),但您的正则表达式中有通配符(任意子域)模式?相对于主域,子域指向文件系统上的哪个位置?同一个地方?你说你有一个“子域”(单数),但是你的正则表达式中有一个通配符(任何子域)模式?相对于主域,子域指向文件系统上的哪个位置?同一个地方?