使用Laravel 4.2的MAMP Pro上的通配符子域。*

时间:2014-08-29 14:28:04

标签: laravel-4 subdomain mamp-pro

我有这个特定于域的路由:

Route::group(['domain' => '{account}.mysystem.dev'], function()
{
    Route::get('/', function($account)
    {
        return sprintf('Hello %s', $account);
    });
});

我不想自己制作子域名,但要将所有子域名(*.mysystem.dev)提供给Laravel来处理。

在我的MAMP Pro面板中,我在扩展选项卡字段Additional parameters for <VirtualHost>

中尝试了此操作
ServerAlias mysystem.dev *.mysystem.dev

但它不起作用。

如果我在常规标签中添加别名如allendar.mysystem.dev,它会引导我转到mysystem.dev指令,但是Laravel并没有把它拿起来,因为它是{.mysystem.dev的子域1}}。我认为它与Alias有关,实际上并不是一个子域名,但我不确定。

我怎么解决这个问题?

2 个答案:

答案 0 :(得分:1)

我通过网络上的一些文档解决了这个问题:

这需要两个步骤; 第一步是使用.local子域设置dnsmasq。它会在.local 4.eg *.something.local.以及http://localstackoverflow.local内收听每个域名。您可以 与.dev

一样

brew install dnsmasq

cd $(brew --prefix); mkdir etc; echo 'address=/.local/127.0.0.1' > etc/dnsmasq.conf

sudo cp -v $(brew --prefix dnsmasq)/homebrew.mxcl.dnsmasq.plist /Library/LaunchDaemons

sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

sudo mkdir /etc/resolver

sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/local'

下一步是配置MAMP通过主配置将任何通配符传递到子域; 这样做:

遵循这些步骤

  1. 打开MAMP Pro
  2. 转到:文件 - &gt;编辑模板 - &gt; Apache - &gt;的httpd.conf
  3. 搜索此行:ServerName MAMP_VirtualHost_ServerName_MAMP
  4. 在它下面直接添加:ServerAlias * .MAMP_VirtualHost_ServerName_MAMP
  5. 在添加主机
  6. 的指令下将ServerAlias *.yourdomain.local添加到Apache
  7. 重启MAMP。

答案 1 :(得分:0)

您无法添加通配符子域,因为它们不在/ etc / hosts中。

https://wordpress.stackexchange.com/questions/57160/wp-multisite-development-with-mamp-pro-and-wildcard-subdomains-not-really-worki

您必须手动添加它们,例如2 -3进行测试,或者创建单独的test1.mysystem.dev和test2.mysystem.dev进行测试。