I have an Apache server based Wordpress site that rewrites URLs to be "pretty".
When I include a query parameter in the url the site breaks.
So:
http://mysite.com
works fine but:
http://mysite.com/?anything
Does not... loading the page contents but failing to load some plugins that I use on the home page.
If you can explain why this happens I would love to hear it. Failing that I would just like to strip off the query parameters entirely so that a request to:
http://mysite.com/?anything
would behave just like the request to:
http://mysite.com
Either through redirection or through simply removing the query string.
Here is my current .htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Handle redirection from https to http
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301]
# End https to http redirection
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^index.php$
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Since I answered the question myself and then that was edited out of my question I will enter it as an "own answer".
Adding the below solved my issue:
Hey @Lothar_Grimpsenbacher,
So I think it might not be an .htaccess problem, might be a WordPress miss concept. I will try to explain briefly;
WordPress has some query_vars that comes from the variables, and if you have the "pretty" permalinks activated (looks like you do from the rules of your .htaccess), the problem would be that the
?anything
is a GET parameter not expected, so WordPress might think it's a case for a 404 depending on what are the variables.As far as I can tell I wouldn't mess with the .htaccess files just to solve this simple problem, might give you serious problems later on.
I think the solution for your problem lies around WordPress been able to see that the variable passed is valid, check the solution below:
And within your template page you can check for the value like this:
PS: I'm not good with .htaccess file rules my self...
(per the author)