@prefix sioc: <http://rdfs.org/sioc/ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix content: <http://purl.org/rss/1.0/modules/content/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<https://lhero.org/?post_type=lh-portfolio&#038;p=152492>
  a sioc:Post ;
  dc:title "LH URL Redirects" ;
  dcterms:identifier 152492 ;
  dc:modified "2026-10-25T18:36:01Z"^^xsd:dateTime ;
  dc:created "2026-10-25T18:32:30Z"^^xsd:dateTime ;
  sioc:link <https://lhero.org/portfolio/lh-url-redirects/> ;
  sioc:has_creator <https://lhero.org/author/1/#account> ;
  sioc:has_container <https://lhero.org/#posts> ;
  content:encoded """<ul class="lh_portfolio-meta"><li><strong>Type:</strong> Plugin</li></ul>
<p class="wp-block-paragraph">LH URL Redirects sends old addresses somewhere useful. It keeps one table of redirect and 410 Gone rules for a whole WordPress Multisite network, stored once on the main site, and applies them wherever a visitor would otherwise hit a page that does not exist.</p>



<p class="wp-block-paragraph">Rules are keyed on a host and path rather than on a site, so one place holds every redirect on the network, including for old domains that no longer have a site at all: point a retired club domain at its new home and anyone still using the old address arrives in the right place.</p>



<h2 class="wp-block-heading">Features</h2>



<ul class="wp-block-list">
<li>Permanent and temporary redirects (301, 302, 303, 307, 308) to any domain, and 410 Gone for content removed for good.</li>



<li>Exact rules for single pages, and prefix rules for a whole section or a whole domain.</li>



<li>Rules only act on addresses that would otherwise 404, so they can never hide real content.</li>



<li>Forgiving matching: scheme, letter case, trailing slashes and query strings do not matter.</li>



<li>Hit counts on every rule, so stale rules are easy to spot.</li>



<li>No settings screen: rules are managed through MCP abilities, so an AI assistant can list, add, test and remove them.</li>
</ul>



<p class="wp-block-paragraph">Network-activate the plugin to create its table. It replaces LH Response Handler, whose rules it can import.</p>


<ul class="lh_portfolio-doc-toc"><li><a href="https://lhero.org/portfolio/lh-url-redirects/how-it-works/">How it works</a></li><li><a href="https://lhero.org/portfolio/lh-url-redirects/abilities/">Abilities</a></li><li><a href="https://lhero.org/portfolio/lh-url-redirects/hooks-and-filters/">Hooks and filters</a></li><li><a href="https://lhero.org/portfolio/lh-url-redirects/migrating-from-lh-response-handler/">Migrating from LH Response Handler</a></li><li><a href="https://lhero.org/portfolio/lh-url-redirects/changelog/">Changelog</a></li></ul>"""^^rdf:XMLLiteral ;
  sioc:content """Type: Plugin
LH URL Redirects sends old addresses somewhere useful. It keeps one table of redirect and 410 Gone rules for a whole WordPress Multisite network, stored once on the main site, and applies them wherever a visitor would otherwise hit a page that does not exist.



Rules are keyed on a host and path rather than on a site, so one place holds every redirect on the network, including for old domains that no longer have a site at all: point a retired club domain at its new home and anyone still using the old address arrives in the right place.



Features




Permanent and temporary redirects (301, 302, 303, 307, 308) to any domain, and 410 Gone for content removed for good.



Exact rules for single pages, and prefix rules for a whole section or a whole domain.



Rules only act on addresses that would otherwise 404, so they can never hide real content.



Forgiving matching: scheme, letter case, trailing slashes and query strings do not matter.



Hit counts on every rule, so stale rules are easy to spot.



No settings screen: rules are managed through MCP abilities, so an AI assistant can list, add, test and remove them.




Network-activate the plugin to create its table. It replaces LH Response Handler, whose rules it can import.


How it worksAbilitiesHooks and filtersMigrating from LH Response HandlerChangelog""" ;
  sioc:topic <https://lhero.org/lh_portfolio-type/plugin/>, <https://lhero.org/?taxonomy=lh_portfolio-tags&term=multisite>, <https://lhero.org/?taxonomy=lh_portfolio-tags&term=404>, <https://lhero.org/?taxonomy=lh_portfolio-tags&term=410>, <https://lhero.org/?taxonomy=lh_portfolio-tags&term=301>, <https://lhero.org/?taxonomy=lh_portfolio-tags&term=redirects>, <https://lhero.org/?taxonomy=author&term=cap-1> .

<https://lhero.org/author/1/#account> rdfs:seeAlso <https://lhero.org/author/1/?feed=lhrdf&format=turtle> .
<https://lhero.org/lh_portfolio-type/plugin/> rdfs:seeAlso <https://lhero.org/lh_portfolio-type/plugin/?feed=lhrdf&format=turtle> .
<https://lhero.org/?taxonomy=lh_portfolio-tags&term=multisite> rdfs:seeAlso <https://lhero.org/?taxonomy=lh_portfolio-tags&term=multisite&feed=lhrdf&format=turtle> .
<https://lhero.org/?taxonomy=lh_portfolio-tags&term=404> rdfs:seeAlso <https://lhero.org/?taxonomy=lh_portfolio-tags&term=404&feed=lhrdf&format=turtle> .
<https://lhero.org/?taxonomy=lh_portfolio-tags&term=410> rdfs:seeAlso <https://lhero.org/?taxonomy=lh_portfolio-tags&term=410&feed=lhrdf&format=turtle> .
<https://lhero.org/?taxonomy=lh_portfolio-tags&term=301> rdfs:seeAlso <https://lhero.org/?taxonomy=lh_portfolio-tags&term=301&feed=lhrdf&format=turtle> .
<https://lhero.org/?taxonomy=lh_portfolio-tags&term=redirects> rdfs:seeAlso <https://lhero.org/?taxonomy=lh_portfolio-tags&term=redirects&feed=lhrdf&format=turtle> .
<https://lhero.org/?taxonomy=author&term=cap-1> rdfs:seeAlso <https://lhero.org/?taxonomy=author&term=cap-1&feed=lhrdf&format=turtle> .
