<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" 
	>
<channel>
	<title>
	Comments on: LH URL Redirects	</title>
	<atom:link href="https://lhero.org/portfolio/lh-url-redirects/feed/" rel="self" type="application/rss+xml" />
	<link>https://lhero.org/portfolio/lh-url-redirects/</link>
	<description>Digital Sovereignty for everyone</description>
	<lastBuildDate>Sun, 25 Oct 2026 07:36:01 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>
		By: Peter Shaw		</title>
		<link>https://lhero.org/portfolio/lh-url-redirects/#comment-1537717</link>

		<dc:creator><![CDATA[Peter Shaw]]></dc:creator>
		<pubDate>Sun, 25 Oct 2026 07:34:47 +0000</pubDate>
		<guid isPermaLink="false">https://lhero.org/?post_type=lh-portfolio&#038;p=152492#comment-1537717</guid>

					<description><![CDATA[Tidy-up after the first plugin check. The legacy importer no longer passes suppress_filters to get_posts(), which already defaults to it, so the VIP check stops flagging it; behaviour is unchanged. Adds the languages/ directory named by the Domain Path header.]]></description>
			<content:encoded><![CDATA[<p>Tidy-up after the first plugin check. The legacy importer no longer passes suppress_filters to get_posts(), which already defaults to it, so the VIP check stops flagging it; behaviour is unchanged. Adds the languages/ directory named by the Domain Path header.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Peter Shaw		</title>
		<link>https://lhero.org/portfolio/lh-url-redirects/#comment-1537716</link>

		<dc:creator><![CDATA[Peter Shaw]]></dc:creator>
		<pubDate>Sun, 25 Oct 2026 07:33:54 +0000</pubDate>
		<guid isPermaLink="false">https://lhero.org/?post_type=lh-portfolio&#038;p=152492#comment-1537716</guid>

					<description><![CDATA[First working release, replacing LH Response Handler. Redirect and 410 Gone rules for every host on the network live in one table on the main site ({base_prefix}lh_url_redirects), keyed on host and path, so rules also work for domains no site is mapped to (for example an old club domain bounced to the main site&#039;s signup page). A rule fires only when its source would otherwise 404, before WordPress&#039;s own URL guessing, or at the root of an unmapped domain. Matching ignores scheme, port, query string, host case and trailing slashes, and decodes the path; an exact rule beats any prefix rule, and the longest prefix wins. Codes 301, 302, 303, 307, 308 and 410 are supported, and redirects may point at any domain. A 410 keeps the theme&#039;s 404 page but sends the Gone status. Each rule counts its hits and last hit. Rules are managed through MCP abilities on the main site (install_plugins): list-redirects, get-redirect, create-redirect, update-redirect, delete-redirect, resolve-url (which rule a URL would hit) and import-legacy-redirects, which copies LH Response Handler&#039;s published rules across, dry run by default and safe to rerun. There is no settings screen. The table is created on network activation and versioned by its own schema version.]]></description>
			<content:encoded><![CDATA[<p>First working release, replacing LH Response Handler. Redirect and 410 Gone rules for every host on the network live in one table on the main site ({base_prefix}lh_url_redirects), keyed on host and path, so rules also work for domains no site is mapped to (for example an old club domain bounced to the main site&#8217;s signup page). A rule fires only when its source would otherwise 404, before WordPress&#8217;s own URL guessing, or at the root of an unmapped domain. Matching ignores scheme, port, query string, host case and trailing slashes, and decodes the path; an exact rule beats any prefix rule, and the longest prefix wins. Codes 301, 302, 303, 307, 308 and 410 are supported, and redirects may point at any domain. A 410 keeps the theme&#8217;s 404 page but sends the Gone status. Each rule counts its hits and last hit. Rules are managed through MCP abilities on the main site (install_plugins): list-redirects, get-redirect, create-redirect, update-redirect, delete-redirect, resolve-url (which rule a URL would hit) and import-legacy-redirects, which copies LH Response Handler&#8217;s published rules across, dry run by default and safe to rerun. There is no settings screen. The table is created on network activation and versioned by its own schema version.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
