我们正在尝试将子域名附加到具有相同名称的目录对应项,因此我们使用.htaccess
完成了此操作。php_value session.cookie_domain .domain.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^/.]+)\.domain\.com$
RewriteCond %1 !^(www|ftp|mail)$ [NC]
RewriteRule (.+)$ "http://domain.com/%0" [L,P]
DirectoryIndex index.php
尝试访问子域,将用户定向到目录。但是我们的问题是每当我们尝试访问任何子域时,我们得到403.我们在Debian上使用Apache。 DNS工作中的通配符,但不知道如何在虚拟主机中指定它。
答案 0 :(得分:0)
您可以将此代码放入htaccess(必须位于文档根文件夹中)
php_value session.cookie_domain .domain.com
DirectoryIndex index.php
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+?)\.domain\.com$ [NC]
RewriteCond %1 !^(?:www|ftp|mail)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /%1/$1 [L]
此代码将在内部将每个子域(www
,ftp
和mail
除外)重写为其子文件夹等效项。
示例:http://user.domain.com/something将在内部重写为/user/something
注意:确保通配符指向与主域相同的文档根