我正在构建一个Laravel应用程序,每个公司都可以在子域上创建自己的页面,所以让我们说apple.mywebsite.com。这一切都适用于我的localhost。
但是,当我在服务器上上传时,无法找到公司页面。除了这个通配符域,我还有2个其他子域作为测试网站。
我已经在DNS中将* .mywebsite.com的A记录指向服务器IP地址。
现在我在httpd.conf中设置了以下内容:
|*if !SUB|
|?DOCROOT=/home/mycompany/domains/mycompany.com/public_html/public|
|*endif|
|*if SUB="b2btest"|
|?DOCROOT=/home/mycompany/domains/mycompany.com/public_html/b2btest/public|
|*endif|
|*if SUB="staging"|
|?DOCROOT=/home/mycompany/domains/mycompany.com/public_html/staging/public|
|*endif|
我的.htaccess看起来如下:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{HTTP_HOST} !=localhost
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://mycompany.com/$1 [R,L]
RewriteCond %{HTTP_HOST} ^www.mycompany.com [NC]
RewriteRule ^(.*)$ https://mycompany.com/$1 [L,R=301,NC]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
这两个子域和主域都在工作,但是当我转到通配符子域时,它们向我显示“站点不可用”消息。
我错了什么?
那太好了!我顺便使用Apache。