.htaccess重写到子文件夹的子域和主域
问题描述:
有大量的资源在线使用.htaccess重写你的子域,如果需要的话,也可以将你的主域重写到子文件夹。我找到了很多答案,其中大部分都完全一样。我一直在繁琐地测试这些方法,并且在所有情况下都有同样的问题。.htaccess重写到子文件夹的子域和主域
考虑通缉的结果:
maindomain.com:重写/的public_html/mainsite/
sub.maindomain.com:重写/的public_html /子/
最快/最彻底的方法我已经考虑如下:
RewriteEngine On
# Rewrite the main domain
RewriteCond %{HTTP_HOST} !sub.maindomain.com
RewriteCond %{REQUEST_URI} !^/mainsite
RewriteRule ^(.*)$ /mainsite/$1 [L]
# Rewrite the sub domain
RewriteCond %{HTTP_HOST} sub.maindomain.com
RewriteCond %{REQUEST_URI} !^/sub
RewriteRule ^(.*)$ /sub/$1 [L]
这工作得很好,除了1个恼人的问题;该生产线
RewriteCond %{REQUEST_URI} !^/mainsite
基本上阻止了重写循环,但如果你浏览到maindomain.com/mainsite/其重写为/的public_html/mainsite /不是/的public_html/mainsite/mainsite /希望筹得404未找到。如果我删除该行,则会发生500个服务器错误,因为它会进入循环:S
问题是,这些域中的任何一个都需要自由创建文件夹等,并且希望确保存在绝对在子文件夹中自由创建人:S
请问有人可以帮忙吗?
答
RewriteEngine On
# Rewrite the main domain
RewriteCond %{HTTP_HOST} !sub.maindomain.com
RewriteCond %{REQUEST_URI} !^/mainsite/.*
RewriteRule ^(.*)$ /mainsite/$1 [L]
# Rewrite the sub domain
RewriteCond %{HTTP_HOST} sub.maindomain.com
RewriteCond %{REQUEST_URI} !^/sub/.*
RewriteRule ^(.*)$ /sub/$1 [L]
你需要让这个它不/ mainsite目录不仅仅是根(/ mainsite)内匹配任何文件。我想你会需要对子域也做同样的事情。
答
实际尝试这个,如果你还在寻找一个答案
RewriteEngine On
# Rewrite the main domain
RewriteCond %{HTTP_HOST} !sub.maindomain.com
RewriteCond %{REQUEST_URI} !^/mainsite/.*
RewriteRule ^/mainsite/(.*)$ /mainsite/$1 [L]
# Rewrite the sub domain
RewriteCond %{HTTP_HOST} sub.maindomain.com
RewriteCond %{REQUEST_URI} !^/sub/.*
RewriteRule ^/sub/(.*)$ /sub/$1 [L]`
你有没有想出一个很好的解决这个? – Mike 2012-11-22 18:47:53