aklump / htaccess-manager
Fund package maintenance!
Buy Me A Coffee
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:project
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
- aklump/json-schema-loading: ^0.0
- aklump/json-schema-merge: @dev
- aklump/json-schema-validation: ^0.0
- symfony/console: ^4.4 || ^5.4 || ^6
- symfony/filesystem: ^4.4 || ^5.4 || ^6
- symfony/yaml: ^4.4 || ^5.4 || ^6
Requires (Dev)
- aklump/phpswap: ^0.0.8
- composer/composer: *
- phpunit/phpunit: ^9.6
README
Summary
A PHP tool for .htaccess management in your web projects.
- Allows you to include .htaccess files in other .htaccess files.
- Work with smaller files then combine using
./bin/htaccess build
- Share common snippets across different .htaccess files.
- Simplified URL redirection; remap old URLs to new without nasty syntax.
- Merge in remote .htaccess source files on build (think Drupal web root .htaccess + custom .htaccess directives).
- Manage banned IPs in a separate file or add them to the YAML configuration.
Quick Start
- Create a YAML configuration file in a secure location in your project.
- Refer to config.example.yml as a guide and optionally, delete when done.
- Lastly, build your files using
./vendor/bin/htaccess build path/to/your/config.yml
Install with Composer
-
This package requires some unpublished packages. You must add the following to composer.json in the
repositories
array:{ "type": "github", "url": "https://github.com/aklump/json-schema-loading" }, { "type": "github", "url": "https://github.com/aklump/json-schema-validation" }, { "type": "github", "url": "https://github.com/aklump/json-schema-merge" }
-
Require this package:
composer require --dev aklump/htaccess-manager:^0.0
Configuration Special Notes
- You must list one or more hosts in
valid_hosts
, including their http or https protocol. - Forced SSL redirection is detected based on the
valid_hosts
array;force_ssl
will be set totrue
if allvalid_hosts
use the https protocol. You may override auto-detection by settingforce_ssl
totrue
orfalse
. - Adding or removing
www.
is detected based on thevalid_hosts
array. It is set toadd
if allvalid_hosts
havewww.
,remove
if allvalid_hosts
do not havewww.
. When neitheradd
norremove
no redirection takes place. You may override auto-detection by settingwww_prefix
toadd
,remove
, ordefault
.
Usage
- To view help execute
./vendor/bin/htaccess
Sponsor this project
github.com buymeacoffee.com paypal.comMore Reading
Troubleshooting
4xx redirects are not working
I'm not sure why, but on some servers they do not work. Possible reasons:
- Apache version?
- VirtualHost config hijacking?
- Drupal conflict?