php Formatting .htaccess RewriteCond RewriteRule for removing query string from URLs?
$uri = $_SERVER['REQUEST_URI']; $subject = substr($uri, strrpos($, "/"));
RewriteEngine on RewriteBase / RewriteCond %{QUERY_STRING} !no-redir [NC] RewriteCond %{QUERY_STRING} (^|&)subject=([^&]+) [NC] RewriteRule ^(.*)/product.php$ $1/%2? [NC] RewriteRule ^([^+\s]+)(?:[+\s]+)([^+\s]+)((?:[+\s]+).*)$ $1-$2$3 [DPI,N] RewriteRule ^([^+\s]+)(?:[+\s]+)([^+\s]+)$ $1-$2 [R=301,DPI,L]
RewriteRule ^(.*/popcorn)/([^/.]+)$ $1/product.php?subject=$2&no-redir [NC,L]
@Chris, those were Java equivalents of PHP strrpos() and substr(). Please, have a look at my update. That's the change I'm proposing for your landing php page.
Add the following after the rules defined above.
Assuming your .htaccess is in the web root / directory
Chris, the idea is to now capture the subject from path info instead of a GET parameter because it's not being passed as ?subject=sub+info which makes it unavailable as $_GET['subject'] now.
Notice, I've added another RewriteCond on %{QUERY_STRING} above. This also means you can revert your product.php to the way it was before since subject is being passed again as usual.
Ravi, I was able to utilize the $_SERVER['REQUEST_URI'] variable to satisfy the conditional
Thanks for the help Ravi, is 'lastIndexOf"/" with sub-string' a JavaScript function? I am not familiar with a PHP function of that name. If you could provide any direction or links on how to use that technique I would be very appreciative.
That code worked perfectly to reformat the URL's, however I am now getting a 404 Server Error. The landing page has a conditional to check if the $subject variable isset before the page loads - would the reformatted URL (without the 'subject=') affect the conditional?
Yes, it would. The landing page won't recognize subject unless passed as ?subject=. I think formatting the url as /shop/popcorn/?subject=Bacon-and-Cheddar-Popcorn should work. Your call. Shorten it to just s if you like or pass as /?Bacon-and... Your php would have to accommodate accordingly. I would suggest you keep the pretty url and use lastIndexOf "/" with sub-string to capture the subject.
You'd need to get the subject keywords from the URI path as follows:
Discussion