欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

htaccess重写子目录

可以使用.htaccess重写一个子域的目录吗?

例子:

显示的内容

分享改善这个问题
 

试着把这个在你的.htaccess文件:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteRule ^(.*)$ http://domain.com/subdomains/sub/$1 [L,NC,QSA]

一个更一般的规则(即与任何子域,不只是sub)替换这最后两行:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ http://domain.com/subdomains/%1/$1 [L,NC,QSA]
分享提高这个答案
 
 
安萨里的解决方法,然而,当我浏览http://test.domain.comURL重定向,我http:/ / / / / test.domain.com子域的测试。这是不可能的/subdomains/test/在比吗?埃里克djupvik12年5月17日20:26
 
在这种情况下,我相信你会考虑使用_代理模型指定一个P除了国旗l安萨里12年5月17日在39
 
不,它重定向到http://test.domain.com/subdomains/test/,当我只想显示test.domain.com http:/ / /埃里克djupvik12年5月17日20:53
 
我不知道它如何重定向到test.domain.com/subdomains/test也许有别的事情要在这里发生。你可以添加rewritebase /刚好在…之后RewriteEngine on?另外,如果你想让它显示test.domain.com你将不得不使用mod_proxy和[P]标志安萨里12年5月17日在20:59
 
我能让它使用“anubhava的回答在这里工作:stackoverflow.com/a/22395008/128984弥迦书2月23日16日期

我不是一个mod_rewrite专家,我经常与它斗争,但我这样做对我的一个网站,它可能需要的其他标志等,根据你的情况。我用这:

RewriteEngine on

RewriteCond %{HTTP_HOST} subdomain.example.com$
RewriteCond %{REQUEST_URI} !^/subdomains/subdomain
RewriteRule ^(.*)$ /subdomains/subdomain/$1 [L] 

对于网站的其余任何其他的重写规则必须事后防止它们干扰你的子域的改写。

分享提高这个答案
 
 
这是这个问题的正确答案戴维2月24 20:00 15 .
  
我会这么说。我发现这个设置是正确的作为我的答案一样在这里HYIP15年3月31日在13
 
只是作为一个参考,万一有人开始.htaccess到这一页(像我一样),除了创造实际htaccess文件,它成为有效的,你需要设置AllowOverride在你的虚拟主机设置(stackoverflow.com/a/22819550/1657502),使Apache的rewrite模块,然后重新启动Apache(stackoverflow.com/a/5758551/1657502安东尼奥Vinicius梅内塞斯模式16年4月20日在23:37

我也有同样的问题,发现一个详细的解释www.webmasterworld.com http:/ / / / 3163397.htm Apache

我的解决方案(子域的内容应该是在一个名为“sd_subdomain

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} subdomain\.domain\.com
RewriteCond $1 !^sd_
RewriteRule (.*) /sd_subdomain/$1 [L]
分享提高这个答案
 
  
它不为我工作,我必须在域的DNS区域配置吗?totoaussi10月2 15 at 10:31
  
“totoaussi你应该创建一个*记录或记录每个子域,指向同一个服务器。巴勃罗托雷西利亚10月15日15 at 7:32
  
是的,很是感谢你totoaussi10月16在11:15 59

你可以在htaccess使用下列规则改写子域到子文件夹:

RewriteEngine On

 #If the host is "sub.domain.com"
 RewriteCond %{HTTP_HOST} ^sub.domain.com$ [NC]
 #Then rewrite any request to /folder
 RewriteRule ^((?!folder).*)$ /folder/$1 [NC,L]

通过线解释线:

  RewriteEngine on

线以上告诉服务器打开发动机重写URL。

  RewriteCond %{HTTP_HOST} ^sub.domain.com$ [NC]

这条线是一个条件的RewriteRule我们对阵HTTP主机使用正则表达式模式。条件说如果主机sub.domain.com然后execute的规则。

 RewriteRule ^((?!folder).*)$ /folder/$1 [NC,L]

比赛的规则http:///sub.domain.com Foo内部重定向到http:/ / / / sub.domain.com foo文件夹

与你想点你的子域的子域和文件夹替换文件夹名称你sub.domain.com。

分享提高这个答案
 
  
这是我的正确答案的解释,我怎么来如下。来到这里寻找一个子域的重定向打破显然当我安装SSL的主要网站TLD的老问题。重定向最初还试图用主网站TLD仍和违反安全规则。我需要的是保持子域(那是在一个完全不同的TLD)在同一个主机而远离主站点。添加重写规则上面使我提出了一套完整的子域主持主要TLD站点文件夹下。李察鲍文7月19日在十八33

重定向到子域相同的文件夹。httaccess

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain\.com/subdomains/%1
分享提高这个答案
 

将子目录:

RewriteCond %{HTTP_HOST} ^([^.]+)\.(archive\.example\.com)$ [NC]
RewriteRule ^ http://%2/%1%{REQUEST_URI} [L,R=301]
分享提高这个答案
 

试着把这个.htaccess文件子文件夹:

RewriteEngine On

RewriteRule ^(.*)?$ ./subdomains/sub/$1

重定向到它http:/ / / / /子domain.com域,当你只想显示sub.domain.com http:/ / /

分享提高这个答案
 
  
这个问题是问2012和8的答案。你的答案在这一点上增加价值?ppovoski16年12月30日在2:44

任何子域名的请求,使用这:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.band\.s\.co 
RewriteCond %{HTTP_HOST} ^(.*)\.band\.s\.co 
RewriteCond %{REQUEST_URI} !^/([a-zA-Z0-9-z\-]+) 
RewriteRule ^(.*)$ /%1/$1 [L] 

只是做一些文件夹相同的子域名你需要。文件夹必须存在,这样:COM /子sub.domain.com

分享提高这个答案
 
  
这为我的作品,但它不保存文件。例如sub.domain.com/index.php掷404保罗法洛莫4月12日22:17

来自 https://stackoverflow.com/questions/10642426/htaccess-rewrite-subdomain-to-directory

 

普通分类: