[wp-trac] [WordPress Trac] #19688: Using pathinfo permalinks in a subdirectory causes some 404's
WordPress Trac
wp-trac at lists.automattic.com
Fri Jan 6 21:45:59 UTC 2012
#19688: Using pathinfo permalinks in a subdirectory causes some 404's
--------------------------+------------------------------
Reporter: mose9634 | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Permalinks | Version: 3.3
Severity: normal | Resolution:
Keywords: |
--------------------------+------------------------------
Description changed by SergeyBiryukov:
Old description:
> Due to circumstances beyond my control, I have a Wordpress site that must
> be installed to a subfolder named "s". I also must use pathinfo type
> permalinks - thus a page with a slug of store-locator would have the url
> /s/index.php/store-locator. Unfortunately this results in a 404, but
> other pages on the site work properly.
>
> I tracked this down, and what I found is that code in
> class_wp->parse_request is causing this - particularly the code starting
> around line 166ish in version 3.3. The lines in particular that mess
> things up are these three:
>
> $pathinfo = trim($pathinfo, '/');
> $pathinfo = preg_replace("|^$home_path|", '', $pathinfo);
> $pathinfo = trim($pathinfo, '/');
>
> Coming into these lines of code, $pathinfo is /store-locator/, but after
> those three lines of code $pathinfo is tore-locator (the leading s is
> missing). This is because $home_path comes from home_url() which strips
> trailing slashes. The code right before this block further strips
> $home_path down to just the subdirectory portion, which in my case is
> just "s". Then the preg_replace fires and the leading s on the path is
> lost.
>
> Temporarily, I added the following line before the three lines above and
> my problems went away:
>
> $home_path .= "/";
>
> Obviously this only works in my particular situation, and I'd like to be
> able to run vanilla Wordpress, but I can't find any combination of
> settings that will preserve my required permalink structure and still
> work. If there's a configuration combination that I'm missing, I'd be
> very happy, otherwise, feel free to contact me if you would like more
> info or if I can help in any way.
New description:
Due to circumstances beyond my control, I have a Wordpress site that must
be installed to a subfolder named "s". I also must use pathinfo type
permalinks - thus a page with a slug of store-locator would have the url
/s/index.php/store-locator. Unfortunately this results in a 404, but other
pages on the site work properly.
I tracked this down, and what I found is that code in
class_wp->parse_request is causing this - particularly the code starting
around line 166ish in version 3.3. The lines in particular that mess
things up are these three:
{{{
$pathinfo = trim($pathinfo, '/');
$pathinfo = preg_replace("|^$home_path|", '', $pathinfo);
$pathinfo = trim($pathinfo, '/');
}}}
Coming into these lines of code, $pathinfo is /store-locator/, but after
those three lines of code $pathinfo is tore-locator (the leading s is
missing). This is because $home_path comes from home_url() which strips
trailing slashes. The code right before this block further strips
$home_path down to just the subdirectory portion, which in my case is just
"s". Then the preg_replace fires and the leading s on the path is lost.
Temporarily, I added the following line before the three lines above and
my problems went away:
{{{
$home_path .= "/";
}}}
Obviously this only works in my particular situation, and I'd like to be
able to run vanilla Wordpress, but I can't find any combination of
settings that will preserve my required permalink structure and still
work. If there's a configuration combination that I'm missing, I'd be very
happy, otherwise, feel free to contact me if you would like more info or
if I can help in any way.
--
--
Ticket URL: <http://core.trac.wordpress.org/ticket/19688#comment:3>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list