verwijzing pagina achter php extensie

Status
Niet open voor verdere reacties.

marc 05

Gebruiker
Lid geworden
5 sep 2006
Berichten
227
We hebben een website met de meeste .php extensies. Nu gebeurt het volgende wanneer iemand achter .php nog wat neer zet dan wordt er toch een pagina weergegeven maar dan zonder css.
Volgens het hosting bedrijf ligt het aan het script. Ik kan hier alleen geen verwijzing neerzetten omdat anders andere dit ook gaan proberen en we vreemde links in de zoekresultaten krijgen.

Maar het ziet er dan b.v zo uit .php/testtestest ... er wordt dan toch een pagina weergegeven. De hoster heeft het voor 1 pagina opgelost maar ik dien dat dan voor iedere pagina gaan te doen wat
enorm veel werk is.

Dit staat in een ini. bestand

#blokkade URL.voorbeeld.php als een / na .php komt.
RewriteRule ^/test/voorbeeld.php/ - [F]
 
Laatst bewerkt:
Zolang je geen adres naar de website vermeld kun je prima hier code plaatsen toch?

Maak je nog meer gebruik van RewriteRules? Wellicht zorgen die er voor dat het mogelijk is.

De oplossing welke de hoster biedt kun je ook dynamisch maken door gebruik te maken van wildcards:
Dat wordt dan iets in deze richting (NIET GETEST)
Code:
RewriteRule ^(.*)\.php/ - [F]
 
Hallo jouw oplossing werkt in ieder geval op alle pagina`s ik krijg dan in elk geval de pagina kan niet worden weergegeven.

veroorzaakt dit mogelijk het probleem:


#Rewriting Rules
RewriteCond %{QUERY_STRING} ../
RedirectRule ^(.*)$ http://www.mijn site.com/ [R=302]
 
Klinkt als iets van een CMS :) Wordpress / Joomla?

Hoe ziet het volledige bestand er uit?
 
ini bedoel je neem ik aan?

Code:
#Domein rewrite  http:// naar http://www. 
RewriteCond %{HTTP_HOST} ^mijnsite.com [NC]
RedirectRule ^(.*)$ http://www.mijnsite.com$1 [R=301]


#blokkade URL .php als een / na .php komt.
RewriteRule ^(.*)\.php/ - [F]


#Hotlink beperking /stream
RewriteCond %{HTTP_REFERER} ^(?!http://(.+\.)?mijnsite\.com) [NC]
RewriteRule ^/stream/cam_1.jpg.*$ - [F,NC]


#WordPress in submap blog
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /blog/. /blog/index.php [L,QSA] 


#Images Hotlink whitelist
RewriteCond %{HTTP_REFERER} ^(?!http://(.+\.)?mijnsite\.com) [NC]
RewriteCond %{HTTP_REFERER} ^(?!http://(.+\.)?anderesite\.nl) [NC]
RewriteCond %{HTTP_REFERER} ^(?!http://(.+\.)?anderesite\.be) [NC]


#Images whitelist
RewriteRule ^/(?!email).*\.(jpe?g|gif|bmp|png|js|css|)$ - [F,NC]


#Rewriting Rules
RewriteCond %{QUERY_STRING} ../
RedirectRule ^(.*)$ http://www.mijnsite.com/ [R=302]
 
Laatst bewerkt door een moderator:
Ja, die bedoel ik inderdaad.

Het is voor mij wat lastig de regels door te nemen, als ik deze tester gebruik http://htaccess.madewithlove.be/ met request URL "http://www.mijnsite.com/pagina.php/trackback" en HTTP_REFERER "http://www.mijnsite.com/pagina.php" dan match hij hem op deze regels:
Code:
RewriteCond %{HTTP_REFERER} ^(?!http://(.+\.)?anderesite\.nl) [NC]
RewriteCond %{HTTP_REFERER} ^(?!http://(.+\.)?anderesite\.be) [NC]

Ik denk dat het een kwestie van regels weglaten is en een voor één weer toevoegen (en je pagina refreshen tussendoor) om te kijken bij welke regel(s) het probleem optreed.
 
Ok dat ga ik morgen eens proberen. Ik meld me nog een keer. Dank je voor zover.
 
een iirf.ini bestand werkt net even iets anders zegt het hostingbedrijf dus zou je deze niet helemaal kunnen testen met een.htaccess tester is mij verteld.

Maar jij bedoelde dat het hierop fout ging toch:

RewriteCond %{HTTP_REFERER} ^(?!http://(.+\.)?anderesite\.nl) [NC]
RewriteCond %{HTTP_REFERER} ^(?!http://(.+\.)?anderesite\.be) [NC]

Verder nog het volgende:

#blokkade URL .php als een / na .php komt.
RewriteRule ^(.*)\.php/ - [F]


Zorgt in Chrome voor een blanco pagina geen foutmeldingspagina.
 
Ik ben er van op de hoogte dat het niet 1 op 1 werkt, iirf is voor een IIS-server en htaccess voor een Apache-server.

Wat uit die tester bleek is dat hij sowieso op die condities matcht dus wat hij daarmee moet gaan doen wordt ook uitgevoerd.

Dat het een blanco pagina oplevert kan goed door een onjuiste syntax komen, kijk daarvoor naar je serverlogs wanneer dat mogelijk is.

De vraag is wat je wilt dat er gaat gebeuren wanneer men op zo'n URL komt, aan de hand daarvan zul je de regel moeten bouwen
 
Wat uit die tester bleek is dat hij sowieso op die condities matcht dus wat hij daarmee moet gaan doen wordt ook uitgevoerd.

Bedoel je met bovenstaand toch ook dat er feitelijk geen fout in dat gedeelte stond.
RewriteCond %{HTTP_REFERER} ^(?!http://(.+\.)?anderesite\.nl) [NC]
RewriteCond %{HTTP_REFERER} ^(?!http://(.+\.)?anderesite\.be) [NC]

dit geeft bij mij een groene balk erachter.


Wat ik wil bereiken is dat er wanneer iemand iets intikt achter .php hij een foutmeldingspagina te zien krijgt of terug gaat naar mijn home pagina.
 
Nee, er is niets fout aan die regels.

Het probleem is meer dat hij door een andere regel http://www.mijnsite.com/pagina.php/trackback matcht en dus een pagina gaat vertonen. Een van de regels in je script zorgt daar dus voor, nu is het zaak die te achterhalen en aan te passen zodat de "fix" die je hoster gaf niet noodzakelijk is :)

Maak je gebruik van een pakket om je site te beheren?
 
nee zelf uploaden maar ik heb juist het ini bestand compleet verwijderd en dan opeens gaat het ook weer fout. er owrdt met .php/trackback dezelfde pagina getoond maar dan zonder opmaak.

Geen kleuren en vaker ook geen foto`s. Denk dat er iets anders fout gaat.
 
Er zijn toch meerder pagina`s waar het resultaat hetzelfde is als bij mij:

http://www.hondenras.com/encyclopedie/contact.php/
http://www.dehondmagmee.nl/veiligreizen.php/

Bij onderstaande gaat het wel goed:

http://www.danler-sleds.com/hundeschlitten/Schlitten/husky-buggy.php/trackback

Zo wil ik de site eigenlijk ook hebben zodat de mensen op de pagina blijven die ze zien zonder b.v. /trackback


Wat ik nog even wil aanvullen is dat ik geen compleet andere pagina te zien krijg maar een andere opmaak.

Onderstaande hebben we geprobeerd:

#voorbeeld blokkade URL .php als een / na .php komt.
RewriteRule ^(.*)\.php/ - [F]


Dit werkt niet zo goed op Chrome


Verder nog:

#test
RewriteCond %{REQUEST_URI} .php/
RedirectRule ^(.*)$ http://www.mijnsite/prive/ [R=301]


De bezoeker komt dan op een pagina waar die geen toegang heeft en een foutmeldingspagina te zien krijgt.
Het is een oplossing maar niet diegene die ik graag zou zien. Liever dat ze op de pagina blijven.
 
Dat die pagina's niet volledig worden weergegeven heeft met relatieve paden te maken naar afbeeldingen of stylesheets.

Dit zorgt ook voor een verkeerde URL:
Code:
#voorbeeld blokkade URL .php als een / na .php komt.
RewriteRule ^(.*)\.php/ - [F]

http://www.mijnsite.com/pagina.php/testestestes wordt dan http://www.mijnsite.com/-testestestes

Deze moet wel juist werken:
Code:
RewriteRule ^(.*)\.php\/(.*)  $1.php [F, R=302]
# http://www.mijnsite.com/pagina.php/testestestes > http://www.mijnsite.com/pagina.php
 
Mijn voorkeur gaat uit naar absolute paden, dan weet je altijd dat je naar de juiste pagina verwijst.

Jouw voorbeeld kun je gebruiken, al vermoed ik wel dat je RewriteRule moet gebruiken in plaats van RedirectRule

Alle het verkeer dat matcht wordt dan doorverwezen naar de URL welke je op hebt gegeven. Je zou kunnen kijken of je naar de originele pagina kunt blijven verwijzen.

Daar zou je REQUEST_FILENAME voor kunnen gebruiken, alleen weet ik niet of je dat in die context kunt proberen.
Dus:
Code:
RewriteRule ^(.*)$ %{REQUEST_FILENAME} [R=301]
 
Even volg ik het niet, zou je me een voorbeeld kunnen geven hoe het geheel er dan uitziet met:


Code:
RewriteRule ^(.*)$ %{REQUEST_FILENAME} [R=301]


Waar kan ik de Url zetten waar naar verwezen moet worden, trouwens dat is op iedere pagina dan toch anders wanneer iemand .php/backtrack kiest.

met de REdirectRule hoe ik het nu heb gaat het verkeer wat een / achter php zet gelijk door naar http://www.mijnsite/prive.



Weer even niet hoe jij dat bedoelt en moet ik dan niet bijna voor iedere pagina iets anders aanmaken?
 
Als dit je rewrite wordt:
Code:
RewriteCond %{REQUEST_URI} .php/
RewriteRule ^(.*)$ %{REQUEST_FILENAME} [R=301]
Ga ik er vanuit dat deze acties volgen:

Code:
http://www.mijnsite.com/pagina.php/testsetests > http://www.mijnsite.com/pagina.php
http://www.mijnsite.com/index.php/fiets        > http://www.mijnsite.com/index.php
Kort gezegd is mijn bedoeling dat de rewrite alles achter ".php" weghaalt.

Dan wordt ook niet elke "ongeldige" pagina doorverwezen naar een pagina die niet bestaat of waar mensen niets aan hebben.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan