六猴子 / htaccessor
轻松管理您的 WordPress .htaccess 文件。
Requires
- php: ^8.1
- dinhquochan/laravel-twig: ^3.0
- haydenpierce/class-finder: ^0.5.3
- illuminate/translation: ^10.21
- illuminate/validation: ^10.21
- illuminate/view: ^10.0
- laminas/laminas-servicemanager: ^3.2
- laminas/laminas-text: ^2.10
- nunomaduro/laravel-console-menu: ^3.4
- nunomaduro/termwind: ^1.15.1
- spatie/emoji: ^4.0
Requires (Dev)
- barryvdh/laravel-ide-helper: ^2.13
- laravel-zero/framework: ^10.0.2
- laravel/pint: ^1.8
- mockery/mockery: ^1.5.1
- pestphp/pest: ^2.5
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]
您的构建器所有可用的设置都将作为变量传递到视图文件中。