Laravel 上的用户名作为子域

2024-01-12

我已经设置了通配符子域 *.domain.com & 我正在使用以下 .htaccess:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !www\.
RewriteCond %{HTTP_HOST} (.*)\.domain\.com
RewriteRule .* index.php?username=%1 [L]

一切都很完美。

我想在laravel中实现这个方法。主要是我想在您访问 username.domain.com 时显示我的用户个人资料。有什么想法可以实现这一目标吗?


这很容易。首先 - 不要改变.htaccessLaravel 提供的默认文件。默认情况下,所有对您域的请求都将路由到您的index.php文件,这正是我们想要的。

然后在你的routes.php文件仅使用“之前”过滤器,该过滤器在完成其他操作之前过滤对应用程序的所有请求。

Route::filter('before', function()
{
    // Check if we asked for a user
    $server = explode('.', Request::server('HTTP_HOST'));

    if (count($server) == 3) 
    {
        // We have 3 parts of the domain - therefore a subdomain was requested
        // i.e.  user.domain.com

        // Check if user is valid and has access - i.e. is logged in
        if (Auth::user()->username === $server[0])
        {
            // User is logged in, and has access to this subdomain

            // DO WHATEVER YOU WANT HERE WITH THE USER PROFILE
            echo "your username is ".$server[0];
        }
        else
        {
            // Username is invalid, or user does not have access to this subdomain
            // SHOW ERROR OR WHATEVER YOU WANT
            echo "error - you do not have access to here";
        }

    }
    else
    {
        // Only 2 parts of domain was requested - therefore no subdomain was requested
        // i.e. domain.com

        // Do nothing here - will just route normally - but you could put logic here if you want
    }
});

编辑:如果您有国家/地区扩展(即domain.com.au或domain.com.eu),那么您将需要更改计数($server)以检查4,而不是3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 上的用户名作为子域 的相关文章

随机推荐

  • 计算两个点阵列之间的成对角度矩阵

    我有两个点向量 x and y 成形 n p and m p 分别 举个例子 x np array 0 0 16341 0 98656 0 05937 0 25205 0 96589 0 05937 0 25205 0 96589 0 11
  • 在函数 (group_by) 中使用 dplyr 时出现问题

    我想使用 dplyr 进行一些数据操作 背景 我有一个调查权重和一堆变量 主要是李克特项目 我想对有和没有调查权重的每个类别的频率和百分比进行求和 举个例子 让我们只使用性别变量的频率 结果应该是这样的 gender freq freq w
  • 哪个 .NET 库具有写时复制集合?

    我正在搜索要在 C 程序中使用的 NET 写时复制集合 例如列表 字典等 哪些集合具有该属性 包括参考FSharp Core 然后你就可以访问多种不可变的集合 Set List Map etc 这些位于Microsoft FSharp Co
  • 如何在 Google Test 中使用不同模板测试多个模板类的相同行为?

    我正在练习 C 17 中的排序算法 并按如下方式实现了我的单元测试 以下编译和所有测试都是绿色的 template
  • Funq IoC 容器是否支持属性注入?

    我正在寻找一个 IoC 容器在我的 Compact Framework 应用程序中使用 尝试 Funq 我发现我找不到用它进行属性注入的方法 我浏览了该项目网站上的讨论及其单元测试 但我找不到任何属性注入的示例 Funq 支持属性注入吗 嗯
  • Django 迁移到新数据库

    我刚刚加入一个使用 Django 的项目 并尝试初始化我自己的开发服务器 当我尝试这样做时 我的一个应用程序的迁移失败 此应用程序的模型有一个 sorl thumbnail ImageField 用于添加徽标 尝试迁移时 我收到以下错误消息
  • [over.load]/1 中下面突出显示的句子是什么意思?

    下面突出显示的句子的含义是什么 它与函数模板有什么关系吗 过载 1 http eel is c draft over load 1 并非所有函数声明都可以重载 那些不能成为的 此处指定了重载 如果程序包含以下内容 则该程序是格式错误的 同一
  • ::after 伪元素出现在之前

    我试图在渐变的顶部和底部创建一个微妙的波浪 但是 after 伪元素出现在主要内容之前而不是之后 目前它显示为 before after 主要内容 但我希望它显示为 before 主要内容 after 这是我的代码 gradient bac
  • couchDB、python 和身份验证

    我已经安装了 couchDB v 0 10 0 并尝试通过从 couchDB wiki 下载的 Couch 类中的 python 与它对话 问题是 Create database mydb error unauthorized reason
  • 对“omp_get_max_threads_”的未定义引用

    我在尝试编译项目时遇到以下错误 fortran 使用 gfortran 对 omp get max threads 的未定义引用 对 omp get thread num 的未定义引用 问题是 我的 GCC 版本是 4 4 3 它应该支持
  • 运行 Julia .jl 文件

    我是朱莉娅的新手 刚刚完成了我的第一个程序 我在 julia studio 中编写了代码 并在该程序中对其进行了测试 它为我提供了所有正确的输出 但 shell 将输出分开 就好像它是两个不同的执行一样 我想知道这是否是我的编译器的问题 所
  • R ggplot2 对只有几个数据点的线图进行轻微平滑

    不确定这是否是一个编程问题 如果我有下面的数据 它会生成一个 尖峰 图表 并且我想使用 ggplot2 生成一个稍微平滑的图表 我该如何最优雅地处理它 通常的平滑方法去除了太多信息 我正在考虑的一种方法是在当前数据集之间插入额外的两个数据点
  • 使用空手道框架时,如何有选择地忽略构建中的某些 .feature 文件?

    我必须忽略使用空手道框架的集成测试套件的某些 feature 测试文件 有什么方法可以有选择地排除某些文件 是的 答案是tags https github com intuit karate test suites Example igno
  • 制作Asus google Nexus 7的模拟器

    我有 android sdk 更新到最新版本 v21 现在我想要的是 制作 Asus google Nexus 7 的模拟器 包含 800 x 1280 分辨率和 216 dpi 当我将 sdk 更新到最新版本时 我无法编辑模拟器当前的 d
  • JSP 自定义标记中的 i18n 翻译

    是否可以编写自定义 JSP 标记来获取 i18n 消息键并输出给定 请求的翻译短语 通常在 JSP JSTL 中 我这样做
  • Google Spell API 和 TinyMCE

    我刚刚使用说明成功实现了 TinyMCE 的拼写检查插件here http ondotnet deap nu 2009 01 implementing tinymce spellchecker with html 不过 我对这个结尾段落感到
  • 在泛型类中使用泛型协议

    我定义了一个协议LLNodeType protocol LLNodeType typealias T var firstNode LLNode
  • knitr 被 data.table `:=` 赋值欺骗

    看起来knitr不明白DT a 1 不应导致输出DT到文档 有办法阻止这种行为吗 Example knitr文档 Data Table Markdown Suppose we make a data table in R Markdown
  • 错误:无法扩展文件“pg_tblspc/4815857/PG_11_201809051/16321”:设备上没有剩余空间

    My postgres table occupied 100 memory并想截断它 当我使用时TRUNCATE TABLE TABLE NAME它给出的声明如下错误 错误 无法扩展文件 pg tblspc 4815857 PG 11 20
  • Laravel 上的用户名作为子域

    我已经设置了通配符子域 domain com 我正在使用以下 htaccess Options FollowSymLinks RewriteEngine On RewriteBase RewriteCond HTTP HOST www Re