Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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
Regex mod_rewrite.htaccess子域重定向_Regex_.htaccess_Mod Rewrite_Redirect_Subdomain - Fatal编程技术网

Regex mod_rewrite.htaccess子域重定向

Regex mod_rewrite.htaccess子域重定向,regex,.htaccess,mod-rewrite,redirect,subdomain,Regex,.htaccess,Mod Rewrite,Redirect,Subdomain,在过去的两天里,我一直在搜索和学习.htaccess,以便将所有子域重定向到用户文件夹 没有更改url,但我一直有3个小问题。我真的非常感谢你的帮助 问题1) 如果我转到http://www.example.com/users/foo它会自动重定向 指向http://foo.example.com/但如果我转到http://www.example.com/users/foo/dashboard.php 它不执行任何操作,而是重定向到http://foo.example.com/dashboard

在过去的两天里,我一直在搜索和学习.htaccess,以便将所有子域重定向到用户文件夹 没有更改url,但我一直有3个小问题。我真的非常感谢你的帮助

问题1)

如果我转到
http://www.example.com/users/foo
它会自动重定向 指向
http://foo.example.com/
但如果我转到
http://www.example.com/users/foo/dashboard.php
它不执行任何操作,而是重定向到
http://foo.example.com/dashboard.php

这是我使用的代码:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /users/(.+)/\ HTTP/
RewriteRule ^users/([^/]+)/(.*)$ http://$1.example.com/$2 [R=301,L]
问题2)

如果我转到
http://foo.example.com/dashboard.php

它从
http://www.example.com/users/foo/dashboard.php

但如果我在地址栏(firefox)中键入
foo.example.com
,它(有时)会自动重定向 要
www.foo.example.com
,我可以阻止
www
前缀吗

这是密码

RewriteCond %{REQUEST_URI} !^/users/
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} ([^.]+)\.example\.com
RewriteRule (.*) /users/%1/$1 [L]
问题3)

活动网站位于文件夹
http://www.example.com/website
但是应该是 在url上可见
http://www.example.com/
(就像我从
http://www.example.com/users/foo

在url
http://foo.example.com/
)。

关于问题一,我只需检查主机:

RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^users/([^/]+)/(.*)$ http://$1.domain.com/$2 [R=301,L]
关于问题二这是我从drupal
.htaccess
文件中得到的一条修改规则:

# remove www prefix
RewriteCond %{HTTP_HOST} ^www\.(.+)\.domain\.com$ [NC]
RewriteRule ^ http://%1%.domain.com{REQUEST_URI} [L,R=301]

# redirect to the subdirectory
RewriteCond %{HTTP_HOST} !^www\.(.+)\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
RewriteRule ^ user/%1%{REQUEST_URI} [L,R=301]
关于您的第三个问题,请在此处检查此问题:

RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^(.*)$ website/$1 [R=301,L]