六猴子/htaccessor

轻松管理您的 WordPress .htaccess 文件。

dev-main 2023-09-05 22:08 UTC

This package is auto-updated.

Last update: 2024-09-06 00:26:02 UTC


README

 _      _                                                   
| |__  | |_   __ _   ___   ___   ___  ___  ___   ___   _ __ 
| '_ \ | __| / _` | / __| / __| / _ \/ __|/ __| / _ \ | '__|
| | | || |_ | (_| || (__ | (__ |  __/\__ \\__ \| (_) || |   
|_| |_| \__| \__,_| \___| \___| \___||___/|___/ \___/ |_|   

htaccessor

轻松管理您的(WordPress).htaccess 文件

安装

composer require sixmonkey/htaccessor

使用

htaccessor 命令行工具将始终将所有文件放入您当前的工作目录。

请确保从您项目的根目录运行 htaccessor。

基本设置

在您可以使用 htaccessor 之前,一些基本设置必须配置并存储到您项目的根目录。在第一次运行 htaccessor 的设置命令后,您的项目根目录将创建一个名为 .htaccessor.json 的文件。此文件包含运行 htaccessor 所需的所有设置。您可能希望将此文件提交到您的项目仓库,以便其他开发人员可以使用具有相同设置的 htaccessor,或者让您的 .htaccess 文件在部署过程中由您的流水线创建。

./vendor/bin/htaccessor setup

您将被要求提供您的 .htaccess 文件的位置(您的公共文件夹)。这可以是相对路径或绝对路径。在大多数情况下,与您的项目根目录相关的相对路径将是最佳选择。

您可以使用设置命令随时更改基本设置。

编辑环境

./vendor/bin/htaccessor edit [?environment]

编写环境的 .htaccess 文件

./vendor/bin/htaccessor write [environment]

删除环境

./vendor/bin/htaccessor delete [?environment]

贡献

htaccessor 是基于 Laravel Zero 框架构建的。
请参阅 Laravel Zero 文档 以获取有关如何使用 Laravel Zero 的更多信息。

我们热烈欢迎您通过添加自己的构建器或修复错误和添加功能来为 htaccessor 贡献。
请随时提出 pull 请求或问题。

添加构建器

请随时通过添加自己的构建器为 htaccessor 贡献。添加构建器很容易!

只需运行以下 make 命令

php htaccessor make:builder [BuilderName?]

这将为您生成两个文件

  • app/Builders 目录中生成一个构建器类(例如 app/Builders/BuilderName.php
  • resources/views/builders 目录中生成一个匹配的视图文件(例如 resources/views/builders/builder-name.blade.php

构建器类

构建器类是一个简单的 PHP 类,它扩展了 App\Builders\Base\Builder 类。

基本

您的构建器需要一个人类可读的标题,因此您必须实现 getTitle() 方法,该方法返回一个描述您的构建器的有意义的字符串

public function getTitle(): string
{
    return 'Add htpasswd protection';
}

此外,您的 Builder 可能需要在您的 .htaccess 文件中启用 ModRewrite。您可以通过在构建器类中将 $requiresModRewrite 属性设置为 true 来实现这一点

public static bool $requiresModRewrite = true;

有时您可能还希望确保您的构建器被添加到 .htaccess 文件的特定位置。您可以通过将 $position 属性设置为与您希望构建器添加到的位置匹配的字符串来实现这一点

public static string $position = -999; // I am very certainly the first builder

收集您构建器的设置

您的构建器可能需要一些设置才能正常工作。您可以通过实现返回设置数组的 configure() 方法来收集这些设置

public function configure(): array
{
    return [
        'mainDomain' => $this->ask('What is the main domain?', $this->options['mainDomain'] ?? null),
        'protocol' => $this->confirm('Do you want to redirect to https?', true) ? 'https' : 'http',
    ];
}

您可以使用 Laravel artisan 命令中可用的任何方法来提示输入以收集您的设置。请参阅 Laravel 文档 以获取有关如何提示用户输入的更多信息。

在写入 .htaccess 文件之前或之后执行某些操作

有时您可能希望在构建器写入.htaccess文件之前或之后执行某些操作。您可以通过实现beforeWrite()afterWrite()方法来实现这一点。

beforeWrite

此方法在构建器写入.htaccess文件之前被调用。它应返回一个布尔值,指示是否应该将构建器写入.htaccess文件。

public function beforeWrite(): bool
{
    // Do something before the builder is written to the .htaccess file
    return true;
}
afterWrite

此方法在构建器写入.htaccess文件之后被调用。将write()方法的结果作为参数传递给此方法。您可以修改此结果,并需要从该方法返回它。

public function afterWrite(string $result): string
{
    // Do something after the builder is rendered and before it is written to the .htaccess file
    return $result;
}

查看构建器的文件

构建器的视图文件是简单的blade模板。请参阅Laravel文档以获取有关如何使用blade模板的更多信息。

这些视图文件将由htaccessor渲染,生成的输出将写入您的.htaccess文件。

为构建器添加重定向到默认域的.htaccess文件的示例视图文件

RewriteCond %{HTTP_HOST} !^{{ $mainDomain }}*
RewriteRule ^(.*)$ {{ $protocol  }}://{{ $mainDomain }}/$1 [R=301,L]

您的构建器所有可用的设置都将作为变量传递到视图文件中。