Eri*_*vik 78 apache subdomain dns .htaccess url-rewriting
是否可以使用.htaccess将子域重写到目录?
例:
显示的内容
Ans*_*ari 100
尝试将其放入.htaccess文件中:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteRule ^(.*)$ /subdomains/sub/$1 [L,NC,QSA]
Run Code Online (Sandbox Code Playgroud)
对于更一般的规则(适用于任何子域,而不仅仅是sub
)用这个替换最后两行:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ subdomains/%1/$1 [L,NC,QSA]
Run Code Online (Sandbox Code Playgroud)
Lee*_*ski 50
我不是mod_rewrite专家,我经常讨论它,但我在我的一个网站上做过这个,它可能需要其他标志等取决于你的情况.我正在使用这个:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$
RewriteCond %{REQUEST_URI} !^/subdomains/subdomain
RewriteRule ^(.*)$ /subdomains/subdomain/$1 [L]
Run Code Online (Sandbox Code Playgroud)
之后必须对网站其余部分进行任何其他重写规则,以防止它们干扰您的子域重写.
sta*_*een 15
您可以在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]
Run Code Online (Sandbox Code Playgroud)
逐行解释:
RewriteEngine on
Run Code Online (Sandbox Code Playgroud)
上面的行告诉服务器打开引擎以重写URL.
RewriteCond %{HTTP_HOST} ^sub.domain.com$ [NC]
Run Code Online (Sandbox Code Playgroud)
此行是RewriteRule的条件,我们使用正则表达式模式匹配http主机.条件是,如果主机是sub.domain.com,则执行规则.
RewriteRule ^((?!folder).*)$ /folder/$1 [NC,L]
Run Code Online (Sandbox Code Playgroud)
该规则与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]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
171641 次 |
最近记录: |