Period . sends page to 404, but only on some URLs..
Moderator: General Moderators
-
simonmlewis
- DevNet Master
- Posts: 4435
- Joined: Wed Oct 08, 2008 3:39 pm
- Location: United Kingdom
- Contact:
Re: Period . sends page to 404, but only on some URLs..
What do you mean, where does it fit into this?
Sorry you have really lost me there...................
I need it to manage /all-products.
But with that query on the end with the full stop, it breaks it. Hence this thread.
Sorry you have really lost me there...................
I need it to manage /all-products.
But with that query on the end with the full stop, it breaks it. Hence this thread.
Love PHP. Love CSS. Love learning new tricks too.
All the best from the United Kingdom.
All the best from the United Kingdom.
Re: Period . sends page to 404, but only on some URLs..
So no routing, everything is handled through htaccess? Can you post your rules, then? I've posted rules that do what you're asking, but they're apparently conflicting with other rules that I can't see. Kinda flying blind here.
-
simonmlewis
- DevNet Master
- Posts: 4435
- Joined: Wed Oct 08, 2008 3:39 pm
- Location: United Kingdom
- Contact:
Re: Period . sends page to 404, but only on some URLs..
Pardon the length of confusing nature of it. We had a change of structure, but kept old ones to aid 301s to work.
The one in question is at the bottom.
The one in question is at the bottom.
Code: Select all
DirectoryIndex index.php index.html index.htm
order allow,deny
allow from all
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
ErrorDocument 404 /custom_404.php
# RewriteCond %{HTTPS} !=on
# RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Remove multiple slashes after domain
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{THE_REQUEST} ^[A-Z]+\s//+(.*)\sHTTP/[0-9.]+$ [OR]
RewriteCond %{THE_REQUEST} ^[A-Z]+\s(.*/)/+\sHTTP/[0-9.]+$
RewriteRule .* http://%{HTTP_HOST}/%1 [R=301,L]
# Remove multiple slashes anywhere in URL
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteRule ^(blog)($|/) - [QSA]
RewriteRule product-tags/bb-pellet$ /categ/bb-pellets? [R=301,L]
# old url rewrite
RewriteRule ^categ/([0-9]+)/([^/]+)$ /index.php?page=categ&c=$1&cname=$2 [L]
RewriteRule ^categ/page/([0-9]+)/([^/]+)/([0-9]+)$ /index.php?page=categ&c=$1&cname=$2&pagenum=$3 [L]
RewriteRule ^subcateg/([0-9]+)/([^/]+)/([0-9]+)/([^/]+) /index.php?page=subcateg&c=$1&cname=$2&s=$3&sname=$4&menu=sub [L]
RewriteRule ^subcateg/page/([0-9]+)/([^/]+)/([0-9]+)/([^/]+)/([0-9]+) /index.php?page=subcateg&c=$1&cname=$2&s=$3&sname=$4&pagenum=$5 [L]
RewriteRule ^product/([0-9]+)/([^/]+)/([0-9]+)/([^/]+)/([0-9]+)/([^/]+)$ /index.php?page=product&c=$1&cname=$2&s=$3&sname=$4&product=$5&h=$6 [L]
# end of old url rewrite
# NEW URLS
RewriteRule ^categ/([^/]+)/([0-9]+)$ /index.php?page=categ&cname=$1&pagenum=$2 [L]
RewriteRule ^categ/([^/]+)$ /index.php?page=categ&cname=$1 [L]
RewriteRule ^subcateg/([^/]+)/([^/]+)/([0-9]+)$ /index.php?page=subcateg&cname=$1&sname=$2&pagenum=$3 [L]
RewriteRule ^subcateg/([^/]+)/([^/]+)$ /index.php?page=subcateg&cname=$1&sname=$2 [L]
RewriteRule ^product/([^/]+)/([^/]+)/([0-9]+)/([^/]+)$ /index.php?page=product&cname=$1&sname=$2&product=$3&h=$4 [L]
# END OF NEW URLS
RewriteRule ^knowledge/([0-9]+) /index.php?page=knowledge&id=$1 [QSA]
RewriteRule ^knowledge/answer/([0-9]+)/([0-9]+) /index.php?page=knowledge&id=$1&id_link=$2 [QSA]
RewriteRule ^pricedrop/page/([0-9]+) /index.php?page=pricedrop&pagenum=$1 [QSA]
RewriteRule ^productsnew/page/([0-9]+) /index.php?page=productsnew&pagenum=$1 [QSA]
RewriteRule ^([^/]+)/page/([0-9]+) /index.php?page=$1&pagenum=$2 [L]
RewriteRule ^loadout/([0-9]+)/([^/]+)/([0-9]+)/([^/]+)/([0-9]+)/([^/]+) /index.php?page=loadout&c=$1&cname=$2&s=$3&sname=$4&product=$5&h=$6 [QSA]
RewriteRule ^pricematch/([0-9]+) /index.php?page=pricematch&id=$1 [QSA]
RewriteRule ^type/([^/]+) /index.php?page=type&type=$1 [QSA]
RewriteRule ^use/([^/]+)/([0-9]+)$ /index.php?page=use&use=$1&pagenum=$2 [QSA]
RewriteRule ^use/([^/]+) /index.php?page=use&use=$1 [QSA]
RewriteRule ^back-in-stock/page/([0-9]+)/([^/]+) /index.php?page=back-in-stock&pagenum=$1&power=$2 [L,QSA]
RewriteRule ^romancode/([^/]+) /index.php?page=romancode&romancode=$1 [QSA]
RewriteRule ^productsall/([0-9]+) /index.php?page=productsall/ [QSA]
RewriteRule ^pricesearch/([0-9]+) /index.php?page=pricesearch&pagenum=$1/ [QSA]
RewriteRule ^productsall/page/([0-9]+) /index.php?page=productsall&pagenum=$1/ [QSA]
RewriteRule ^productsairsoft/page/([0-9]+) /index.php?page=productsairsoft&pagenum=$1/ [QSA]
RewriteRule ^manufacturers/([^/]+) /index.php?page=manufacturers&manufacturer=$1 [QSA]
RewriteRule ^accessories-manufacturers/([^/]+) /index.php?page=accessories-manufacturers&manufacturer=$1 [QSA]
RewriteRule ^other-manufacturers/([^/]+) /index.php?page=other-manufacturers&manufacturer=$1 [QSA]
RewriteRule ^product-tags/page/([0-9]+)/([^/]+) /index.php?page=product-tags&pagenum=$1&producttag=$2 [QSA]
RewriteRule ^product-tags/([^/]+) /index.php?page=product-tags&producttag=$1 [QSA]
RewriteRule ^videos/([0-9]+) /index.php?page=videos&catid=$1 [QSA]
RewriteRule ^videos/product/([0-9]+)/([0-9]+) /index.php?page=videos&catid=$1&id=$2 [QSA]
RewriteRule ^videos/product-search/([0-9]+)/([0-9]+)/([^/]+)/([^/]+) /index.php?page=videos&catid=$1&id=$2&search=$3&searchvideo=$4 [QSA]
RewriteRule ^whatcustomerssay/([0-9]+) /index.php?page=whatcustomerssay&pagenum=$1/ [QSA]
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L]
RewriteRule ^$ index.php?page=home [QSA]Love PHP. Love CSS. Love learning new tricks too.
All the best from the United Kingdom.
All the best from the United Kingdom.
Re: Period . sends page to 404, but only on some URLs..
[text]RewriteRule ^productsall/page/([0-9]+) /index.php?page=productsall&pagenum=$1/ [QSA]
RewriteRule ^productsairsoft/page/([0-9]+) /index.php?page=productsairsoft&pagenum=$1/ [QSA]
RewriteRule ^manufacturers/([^/]+) /index.php?page=manufacturers&manufacturer=$1 [QSA]
RewriteRule ^accessories-manufacturers/([^/]+) /index.php?page=accessories-manufacturers&manufacturer=$1 [QSA]
RewriteRule ^other-manufacturers/([^/]+) /index.php?page=other-manufacturers&manufacturer=$1 [QSA][/text]
Any reason you aren't following a similar pattern for /all-products?
RewriteRule ^productsairsoft/page/([0-9]+) /index.php?page=productsairsoft&pagenum=$1/ [QSA]
RewriteRule ^manufacturers/([^/]+) /index.php?page=manufacturers&manufacturer=$1 [QSA]
RewriteRule ^accessories-manufacturers/([^/]+) /index.php?page=accessories-manufacturers&manufacturer=$1 [QSA]
RewriteRule ^other-manufacturers/([^/]+) /index.php?page=other-manufacturers&manufacturer=$1 [QSA][/text]
Any reason you aren't following a similar pattern for /all-products?
-
simonmlewis
- DevNet Master
- Posts: 4435
- Joined: Wed Oct 08, 2008 3:39 pm
- Location: United Kingdom
- Contact:
Re: Period . sends page to 404, but only on some URLs..
Those other pages don't have the filters. The filters just add to the URL... &calibre=0.77-cal.
This is the rule that runs the all-products pagination.
Code: Select all
RewriteRule ^([^/]+)/page/([0-9]+) /index.php?page=$1&pagenum=$2 [L]Love PHP. Love CSS. Love learning new tricks too.
All the best from the United Kingdom.
All the best from the United Kingdom.
Re: Period . sends page to 404, but only on some URLs..
Have you looked at all at the tool I linked to? http://htaccess.madewithlove.be/
Seems like a good place to start
Seems like a good place to start
Re: Period . sends page to 404, but only on some URLs..
[text]RewriteRule ^all-products /index.php?page=all-products [QSA,L][/text]
This appears to be what you're after.
This appears to be what you're after.
-
simonmlewis
- DevNet Master
- Posts: 4435
- Joined: Wed Oct 08, 2008 3:39 pm
- Location: United Kingdom
- Contact:
Re: Period . sends page to 404, but only on some URLs..
While that isn't causing a 404, it's not passing over the additional queries in the URL.
Not even those filters we had that did work.
Not even those filters we had that did work.
Love PHP. Love CSS. Love learning new tricks too.
All the best from the United Kingdom.
All the best from the United Kingdom.
-
simonmlewis
- DevNet Master
- Posts: 4435
- Joined: Wed Oct 08, 2008 3:39 pm
- Location: United Kingdom
- Contact:
Re: Period . sends page to 404, but only on some URLs..
Oh that's interesting, if I put that rule in after the one I mentioned earlier, that captures most /fred URLs, it works.
Love PHP. Love CSS. Love learning new tricks too.
All the best from the United Kingdom.
All the best from the United Kingdom.
Re: Period . sends page to 404, but only on some URLs..
What is the URI (you can of course obfuscate the URL)? What is the expected output? What is the actual output?
For input
[text]http://site.co.uk/all-products&calibre=0.77-cal[/text]
I get output
[text]http://site.co.uk/index.php?page=all-pr ... e=0.77-cal[/text]
Am I misunderstanding you?
For input
[text]http://site.co.uk/all-products&calibre=0.77-cal[/text]
I get output
[text]http://site.co.uk/index.php?page=all-pr ... e=0.77-cal[/text]
Am I misunderstanding you?
Re: Period . sends page to 404, but only on some URLs..
Hmm. Should do that anyway on account of the Lsimonmlewis wrote:Oh that's interesting, if I put that rule in after the one I mentioned earlier, that captures most /fred URLs, it works.
-
simonmlewis
- DevNet Master
- Posts: 4435
- Joined: Wed Oct 08, 2008 3:39 pm
- Location: United Kingdom
- Contact:
Re: Period . sends page to 404, but only on some URLs..
Ok sorry... correction. It passes most over. But Calibre, it doesn't 404, but it is not passing it through.
Even if I ask it if $calibre is isset, and echo something in the code, it still doesn't show anything.
URI: http://www.mysite.co.uk/all-products&calibre=.177-cal
The URI that appears at the top is rewritten, so index.php is not shown.
Even if I ask it if $calibre is isset, and echo something in the code, it still doesn't show anything.
URI: http://www.mysite.co.uk/all-products&calibre=.177-cal
The URI that appears at the top is rewritten, so index.php is not shown.
Love PHP. Love CSS. Love learning new tricks too.
All the best from the United Kingdom.
All the best from the United Kingdom.
Re: Period . sends page to 404, but only on some URLs..
Are you sure this is still an htaccess issue?simonmlewis wrote:Ok sorry... correction. It passes most over. But Calibre, it doesn't 404, but it is not passing it through.
Are other expected values being set? Can you tell if it's reaching the correct page script?simonmlewis wrote:Even if I ask it if $calibre is isset, and echo something in the code, it still doesn't show anything.
-
simonmlewis
- DevNet Master
- Posts: 4435
- Joined: Wed Oct 08, 2008 3:39 pm
- Location: United Kingdom
- Contact:
Re: Period . sends page to 404, but only on some URLs..
It is definitely to do with htaccess. If I echo "hello" in the:
... script, and click on a filter with a dot in it, nothing shows up.
If I select one with no dot in it, it does show.
If I select a manufacturer and echo similar code, it shows up.
So that full stop is definitely being barred somehow. Though it is no longer throwing a 404, it is not allowing it through.
Code: Select all
if(isset($_GET['calibre']))If I select one with no dot in it, it does show.
If I select a manufacturer and echo similar code, it shows up.
So that full stop is definitely being barred somehow. Though it is no longer throwing a 404, it is not allowing it through.
Love PHP. Love CSS. Love learning new tricks too.
All the best from the United Kingdom.
All the best from the United Kingdom.
Re: Period . sends page to 404, but only on some URLs..
Can you post your modified htaccess? Do you know where it's failing?