htaccess将子域重写为子文件夹

时间:2014-11-25 11:54:41

标签: .htaccess

我试图让子域名指向子文件夹,例如 http://{subdomain}.example.com指向http://example.com/{subdomain}而未更改地址栏中的网址。

我目前有这段代码:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com
RewriteRule ^(.*)$ http://example.com/%1 [L]

这似乎有效,但它会更改我的网址栏

我知道有很多关于此的问题,但没有一个适合我的芒果。

2 个答案:

答案 0 :(得分:1)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此基于前瞻的规则:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^.*\.example\.com$ [NC]
RewriteCond %{HTTP_HOST}:%{REQUEST_URI} ^([^.]+)\.[^:]+:(?!/\1/).*$
RewriteRule ^ %1%{REQUEST_URI} [L]

答案 1 :(得分:1)

尝试使用虚拟主机,编辑httpd-vhosts.conf并添加:

<VirtualHost *:80>
  ServerAlias *.yourdomain.com #wildcard catch all
  VirtualDocumentRoot /opt/lampp/htdocs/%1
  UseCanonicalName Off
  <Directory "opt/lampp/htdocs">
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>