繁体   English   中英

mod_rewrite .htaccess子域重定向

[英]mod_rewrite .htaccess subdomain redirect

我花了最后两天的时间搜索和学习.htaccess,以将所有子域重定向到用户文件夹而不更改url,但是我仍然遇到3个小问题。 我真的很感谢您的帮助

问题1)

如果我转到http://www.example.com/users/foo它将自动将URL重定向到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获取信息一样)网址http://foo.example.com/上的http://www.example.com/users/foo )。

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

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM