https://github.com/humanmade/hm-redirects
Fast and scalable redirects plugin for WordPress
https://github.com/humanmade/hm-redirects
redirects wordpress wordpress-plugin
Last synced: 3 months ago
JSON representation
Fast and scalable redirects plugin for WordPress
- Host: GitHub
- URL: https://github.com/humanmade/hm-redirects
- Owner: humanmade
- Created: 2017-11-16T13:47:39.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2025-05-21T13:46:20.000Z (5 months ago)
- Last Synced: 2025-06-22T17:09:59.425Z (4 months ago)
- Topics: redirects, wordpress, wordpress-plugin
- Language: PHP
- Homepage:
- Size: 162 KB
- Stars: 29
- Watchers: 23
- Forks: 11
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.txt
Awesome Lists containing this project
README
# HM Redirects
Allows to redirect one path to another path on the same domain.
## Architecture
Redirects are stored as a custom post type and use the following fields:- `post_name` to store the md5 hash of the _From_ path. This column is used because it is indexed, and allows fast queries. `md5` is used to simplify the storage.
- `post_title` to store the _From_ path.
- `post_excerpt`to store the the _To_ path.## Tips
This plugin uses `wp_safe_redirect()` to redirect. You will have to whitelist your redirect target domains using WordPress' `allowed_redirect_hosts` filter, otherwise the redirect will not work.
One way to get a list of redirect target domains is to run the WP-CLI command: `wp hm-redirects find-domains`. Another is to add them dynamically just-in-time using the filter `hm_redirects_matched_redirect`.## Attributions
Props for the data storage approach to VIP's [WPCOM Legacy Redirector](https://github.com/Automattic/WPCOM-Legacy-Redirector).## Contributing
### Before tagging a release
* Update the [version string on line 8](hm-redirects.php).
### Running tests
Currently the plugin's automated tests [run against PHP 7.4 and WP 5.8](.github/workflows/phpunit.yml). PHPUnit doesn't need to be installed, however:
```
composer install
docker run --rm -e WP_VERSION=5.8 -v $PWD:/code humanmade/plugin-tester
```