是否有可能使用.htaccess重写一个子域到一个目录?
例:
http://sub.domain.com/
显示的内容
http://domain.com/subdomains/sub/
如何重新编写锚定CMS的指令
.htaccess资源解释为脚本,但是以MIMEtypestext / HTML传输
在windows上使用htaccess文件 – 实际上保存文件为.htaccess?
拒绝访问.htaccess中的一个特定文件夹
使用mod_rewrite,如何强制path和查询string全部小写?
摆脱CodeIgniterurl中的Index.PHP
重写Apacheredirect规则
htaccess重写规则以无限循环结束
.htaccess允许访问一个文件和一个文件夹
VirtualdocumentRoot处理不存在的文件夹
尝试把这个在你的.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,QSA]
我不是一个mod_rewrite的专家,我经常与它斗争,但我已经在我的一个网站上做了这个,它可能需要其他标志等等,这取决于你的情况。 我正在使用这个:
RewriteEngine on RewriteCond %{http_HOST} subdomain.example.com$ RewriteCond %{REQUEST_URI} !^/subdomains/subdomain RewriteRule ^(.*)$ /subdomains/subdomain/$1 [L]
其他任何网站的其他重写规则必须事后,以防止他们干扰你的子域重写。
您可以在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然后执行规则。
RewriteRule ^((?!folder).*)$ /folder/$1 [NC,L]
该规则与http://sub.domain.com/foo相匹配,并在内部将其重定向到http://sub.domain.com/folder/foo 。
将sub.domain.com替换为您的子域名和文件夹的名称,以指定您的子域名。
我遇到了同样的问题,并在http://www.webmasterworld.com/apache/3163397.htm中找到了详细的解释
我的解决方案(子域内容应该在一个名为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]
重定向到相同的文件夹子域:.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://sub.domain.com/时,它会重定向到http://domain.com/subdomains/sub/
对于任何子域请求,请使用以下命令:
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]
只需使一些文件夹与您需要的子域名相同即可。 文件夹必须像这样存在: domain.com/sub for sub.domain.com 。
总结以上是内存溢出为你收集整理的.htaccess重写子目录到目录全部内容,希望文章能够帮你解决.htaccess重写子目录到目录所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)