[htaccess] .php-files negeren bij rewrite

Pagina: 1
Acties:
  • 773 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Ha,

Met behulp van htacces zorg ik ervoor dat "http://www.website.nl/informatie" wordt doorverwezen naar "http://www.website.nl/informatie.php".

Nu zou ik graag willen dat wanneer men "http://www.website.nl/informatie.php" intypt een error pagina te zien krijgt, waardoor de pagina's alleen te bereiken zijn zonder de .php erachter.

Is dit mogelijk met htaccess? Zo ja, kan iemand mij in de goede richting duwen?

Alvast bedankt.

Acties:
  • 0 Henk 'm!

  • Walance
  • Registratie: September 2005
  • Laatst online: 22-09 18:30

Walance

Hm.. wat zal ik hier schrijven

Je kunt misschien rewrite rules gebruiken met regular expressions, zoiets als dit:

^(.*)\.php$ $1 [L]

Of nog meer informatie hier: http://www.tbforum.nl/artikel/72269.html

Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Als ik het op onderstaande methode doe dan werkt het niet:

--------------------------------------------------------------------------------------
RewriteRule ^(.*)\.php$ index.php [L]

RewriteRule ^registreren registreren.php

--------------------------------------------------------------------------------------

Dan wordt alles gerewrite naar index.php :s

Acties:
  • 0 Henk 'm!

  • MaNDaRK
  • Registratie: Oktober 2001
  • Laatst online: 22:43
Klopt.

[L] Gebruik je om aantegeven dat dat je laatste regel is ;)

En ik zal eens kijken naar de link die Conquerer geeft ;)

Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 19-09 10:19
[question] Waarom zou je dit eigenlijk willen? Om te verhullen dat je php gebruikt? Beeld->bron is al genoeg om dit vast te stellen.

En hoe gaat het dan met favorieten? Die natuurlijk /informatie.php vastleggen in adres omdat ze daar al zijn.

Wat ik me zelfs voor kan stellen is dat dit niet kan werken omdat .htacces je doorverwijst naar /informatie.php en dan kom je op informatie.php, dit mag niet van .htacces, dus krijg je een error pagina...

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

Verwijderd

therat10430 schreef op maandag 05 november 2007 @ 11:45:
[question] Waarom zou je dit eigenlijk willen? Om te verhullen dat je php gebruikt? Beeld->bron is al genoeg om dit vast te stellen.
Die mag je me uitleggen, hoe wil jij via beeld->bron erachter komen dat er PHP gebruikt wordt?

Het staat normaliter wel gewoon in de headers, maar ook dit is uit te schakelen.

Security through obscurity is een slecht iets om te proberen, maar PHP biedt er genoeg voorzieningen voor, jij kan er dan echt niet achter komen of ik nu de boel in PHP of in Perl heb gemaakt.

Acties:
  • 0 Henk 'm!

  • Japius
  • Registratie: April 2003
  • Laatst online: 30-08 20:57
therat10430 schreef op maandag 05 november 2007 @ 11:45:
[question] Waarom zou je dit eigenlijk willen? Om te verhullen dat je php gebruikt? Beeld->bron is al genoeg om dit vast te stellen.
Que? Bij mijn weten is php nog steeds serverside, niet clientside.

In plaats van de [L] in je .htaccess kan je beter de [PT] gebruiken.

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Je kan ook je PHP files zonder extensie op je server zetten en die files door apache als PHP laten behandelen :)

Acties:
  • 0 Henk 'm!

Verwijderd

Erkens schreef op maandag 05 november 2007 @ 11:51:
Je kan ook je PHP files zonder extensie op je server zetten en die files door apache als PHP laten behandelen :)
Maar goed dat dat geen veiligheids issues met zich mee brengt [/sarcastisch]

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op maandag 05 november 2007 @ 11:52:
[...]

Maar goed dat dat geen veiligheids issues met zich mee brengt [/sarcastisch]
Zoals?

Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
therat10430 schreef op maandag 05 november 2007 @ 11:45:
[question] Waarom zou je dit eigenlijk willen? Om te verhullen dat je php gebruikt? Beeld->bron is al genoeg om dit vast te stellen.

En hoe gaat het dan met favorieten? Die natuurlijk /informatie.php vastleggen in adres omdat ze daar al zijn.

Wat ik me zelfs voor kan stellen is dat dit niet kan werken omdat .htacces je doorverwijst naar /informatie.php en dan kom je op informatie.php, dit mag niet van .htacces, dus krijg je een error pagina...
De website waar ik mee bezig ben is een nieuwe versie van de huidige website. Aangezien de huidige website adressen gebruikt als "index.php?id=1&fid=54" wil ik voorkomen dat ze middels deze adressen de nieuwe website raadplegen.
Dus het is zeker niet om niet te verhullen dat ik php gebruik, maar gewoon een oplossing voor hetgeen wat ik niet wil (namelijk adressen met .php?id=1 blabla).

Ik zal eens kijken wat [PT] doet....


Edit:

Als ik dit doe dan werkt het nog niet:

---------------------------------------------------------------
RewriteRule ^(.*)\.php$ index.php [PT]

RewriteRule ^registreren registreren.php
--------------------------------------------------------------

Als ik dan naar www.website.nl/registreren ga en wordt ik ook doorverwezen naar de index.php

[ Voor 15% gewijzigd door radem205 op 05-11-2007 12:07 ]


Acties:
  • 0 Henk 'm!

  • Arethusa
  • Registratie: December 2003
  • Laatst online: 19-09 15:38

Arethusa

Niet die server

radem205 schreef op maandag 05 november 2007 @ 12:03:
[...]


De website waar ik mee bezig ben is een nieuwe versie van de huidige website. Aangezien de huidige website adressen gebruikt als "index.php?id=1&fid=54" wil ik voorkomen dat ze middels deze adressen de nieuwe website raadplegen.
Dus het is zeker niet om niet te verhullen dat ik php gebruik, maar gewoon een oplossing voor hetgeen wat ik niet wil (namelijk adressen met .php?id=1 blabla).

Ik zal eens kijken wat [PT] doet....
Zoek je niet iets als dit?

Edit: ik zie nu dat iets vergelijkbaar al eerder in het topic word genoemd.

[ Voor 5% gewijzigd door Arethusa op 05-11-2007 12:20 ]

I've been mad for fucking years, absolutely years, been over the edge for yonks.
Vinyl: Discogs


Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Maar als ik onderstaande code toepas dan werkt het nog niet (ook niet met [PT] )

--------------------------------------------------------------------------------------
RewriteRule ^(.*)\.php$ index.php [L]

RewriteRule ^registreren registreren.php

--------------------------------------------------------------------------------------

Het lijkt wel wanneer ik http://www.website.nl/registreren intyp dat ie dan door wordt verwezen naar registreren.php en dan vervolgens ook weer naar index.php . Is dit mogelijk? Zo ja, weet iemand een oplossing?

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

code:
1
RewriteRule ^(.*)\.php$ index.php [L]
Waarom uberhaupt deze code? Die is toch onnodig?

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

Verwijderd

code:
1
RewriteRule ^(.*)\.php$ index.php [L]


Nu worden toch alle requests naar een php file door verwezen naar index.php?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je moet juist een [L] zetten achter de tweede rewrite rule. Wat je nu doet is je URL herschrijven van registreren naar registreren.php, vervolgens registreert Apache daar een nieuw request voor en gaat weer rewriten volgens die eerste regel. Lekker handig. ;)

Verder: Waar hoort mijn topic?
PRG>>WSS

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Maar snappen jullie wat ik wil? Want ik krijg het niet voor elkaar...

Edit: Ok bedankt!! Zal dat doen idd :)

[ Voor 23% gewijzigd door radem205 op 05-11-2007 17:03 ]


Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
-NMe- schreef op maandag 05 november 2007 @ 17:01:
Je moet juist een [L] zetten achter de tweede rewrite rule. Wat je nu doet is je URL herschrijven van registreren naar registreren.php, vervolgens registreert Apache daar een nieuw request voor en gaat weer rewriten volgens die eerste regel. Lekker handig. ;)

Verder: Waar hoort mijn topic?
PRG>>WSS
Als ik onderstaande doe werkt het nog niet :s (alles wordt doorgestuurd naar index.php

RewriteRule ^(.*)\.php$ index.php
RewriteRule ^registreren registreren.php [L]

Kan het zijn dat de functie [L] uit staat op de server :s?

[ Voor 3% gewijzigd door radem205 op 05-11-2007 17:28 ]


Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
* subtiel kickje *

Acties:
  • 0 Henk 'm!

  • Arethusa
  • Registratie: December 2003
  • Laatst online: 19-09 15:38

Arethusa

Niet die server

radem205 schreef op maandag 05 november 2007 @ 17:28:
[...]


Als ik onderstaande doe werkt het nog niet :s (alles wordt doorgestuurd naar index.php

RewriteRule ^(.*)\.php$ index.php
RewriteRule ^registreren registreren.php [L]

Kan het zijn dat de functie [L] uit staat op de server :s?
In dat geval zou je eens contact moeten opnemen met je server beheerder en/of een .php bestand
bestand aanmaken en op de server zetten met deze tekst erin:
PHP:
1
2
3
<?php
phpinfo();
?>


En verolgens het bestand in je browser openen. Daar kun je een boel informatie uithalen die je wellicht verder helpt.

[ Voor 3% gewijzigd door Arethusa op 05-11-2007 21:34 ]

I've been mad for fucking years, absolutely years, been over the edge for yonks.
Vinyl: Discogs


Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Ik heb niks kunnen ontdekken in de phpinfo wat niet goed is.

Heeft iemand nog een idee waardoor dit niet werkt?

Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Ik weet al waarschijnlijk waar de fout zit, maar ik weet niet hoe ik het kan oplossen.

Als ik de volgende regel uitvoer:

RewriteRule ^gastenboek/([0-9]+) gastenboek.php?nav=$1 [L]
RewriteRule ^gastenboek gastenboek.php [L]

RewriteRule ^(.*)\.php$ index.php

Wanneer ik dan naar "www.website.nl/gastenboekahjadhsjdasjadshads.php" ga dan wordt ie nog steeds doorverwezen naar gastenboek.php. Dus kortweg; als achter de "/" het woord "gastenboek" staat dan maakt het niet uit wat er achter komt, want hij wordt altijd doorverwezen naar de gastenboek.php

Als ik een "$" teken achter ^gastenboek$ zet dan doet ie het helemaal niet meer :s

Hoe kan ik dit oplossen zodat alleen het exacte woord "gastenboek" wordt doorverwezen naar gastenboek.php?

Bedankt!

[ Voor 8% gewijzigd door radem205 op 06-11-2007 17:28 ]


Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Weet echt niemand dit? Want voor mij is dit een groot probleem wat ik graag (met jullie hulp) wil oplossen :(.

Sorry dat ik zo aandring, en misschien is het te makkelijk, maar ik kom er niet uit....

Acties:
  • 0 Henk 'm!

Verwijderd

Je zult gebruik moeten maken van een rewrite conditie die een error 403 (bijvoorbeeld) geeft wanneer iemand de .php gebruikt. Doordat de regels niet opnieuw geparsed worden bij een rewrite tenzij je dit expliciet aangeeft zal de rewrite request wel lukken terwijl de directe requests geblocked worden.

Dit staat uitgebreid in de documentatie beschreven, heb je die al doorgenomen?

(En je laatste vraag, een $ erachter zou het inderdaad moeten fixen, lijkt me onwaarschijnlijk dat dat niet zou werken).

[ Voor 13% gewijzigd door Verwijderd op 07-11-2007 11:20 ]


Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Verwijderd schreef op woensdag 07 november 2007 @ 11:19:
Je zult gebruik moeten maken van een rewrite conditie die een error 403 (bijvoorbeeld) geeft wanneer iemand de .php gebruikt. Doordat de regels niet opnieuw geparsed worden bij een rewrite tenzij je dit expliciet aangeeft zal de rewrite request wel lukken terwijl de directe requests geblocked worden.

Dit staat uitgebreid in de documentatie beschreven, heb je die al doorgenomen?

(En je laatste vraag, een $ erachter zou het inderdaad moeten fixen, lijkt me onwaarschijnlijk dat dat niet zou werken).
Bedankt voor je reactie!! Ik heb idd de documentatie doorgenomen op de website van "apache". Daar kon ik de oplossing niet vinden, maar zal nog eens kijken naar de rewrite conditie.

Ik heb dus het dollar-teken ($) achter de verschillende Rewrite Rules gezet (zie onderstaand), maar dan wordt alles naar index.php doorgestuurd :s. BTW: ik heb de htaccess in een submap staan, maar dat maakt niet uit lijkt mij (of wel?)

------------------------------------------------------------

RewriteRule ^gastenboek/([0-9]+) gastenboek.php?nav=$1 [L]
RewriteRule ^gastenboek$ gastenboek.php [L]

RewriteRule ^(.*)\.php$ index.php
------------------------------------------------------------

Ik snap echt niet waarom dit bovenstaande niet werkt :s.

Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Ik zal mijn gehele htaccess bestand ff hier neerzetten (waarschijnlijk kan alles vereenvoudigd worden naar 1 of 2 regels).

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
ErrorDocument 404 http://www.domein.nl/error.php

RewriteEngine on

RewriteRule ^wachtwoord/([0-9a-zA-Z]+)/([0-9a-zA-Z]+) wachtwoord.php?g=$1&w=$2 [L]
RewriteRule ^wachtwoord wachtwoord.php [L]

RewriteRule ^home index.php [L]
RewriteRule ^login inloggen.php?doe=Inloggen [L]
RewriteRule ^uitloggen uitloggen.php?doe=uitloggen [L]
RewriteRule ^registreren registreren.php [L]
RewriteRule ^onderdelen/harmonie harmonie.php [L]
RewriteRule ^onderdelen/slagwerkensemble slagwerk.php [L]
RewriteRule ^onderdelen/majorettes majorettes.php [L]
RewriteRule ^onderdelen/jeugdopleiding jeugd.php [L]

RewriteRule ^algemeen algemeen.php [L]

RewriteRule ^nieuws/([0-9]+)/([^/]+) nieuws.php?fid=$1&id=$2 [L]
RewriteRule ^nieuws/([0-9]+) nieuws.php?id=$1 [L]
RewriteRule ^nieuws nieuws.php [L]
RewriteRule ^nieuws/ nieuws.php [L]

RewriteRule ^gastenboek/([0-9]+) gastenboek.php?nav=$1 [L]
RewriteRule ^gastenboek gastenboek.php [L]

RewriteRule ^muziekcentrum muziekcentrum.php [L]
RewriteRule ^muziekcentrum/ muziekcentrum.php [L]

RewriteRule ^topic/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+) topic.php?id=$1&nav=$2&quote=$3&qid=$4 [L]
RewriteRule ^topic/([0-9]+)/([0-9]+) topic.php?id=$1&nav=$2 [L]
RewriteRule ^topic/([0-9]+) topic.php?id=$1 [L]

RewriteRule ^forum/toevoegen topic_toevoegen.php [L]

RewriteRule ^forum/([0-9]+) forum.php?id=$1 [L]
RewriteRule ^forum forum.php [L]

RewriteRule ^topic/edit/([0-9]+)/([0-9]+) wijzigen.php?fid=$1&id=$2 [L]

RewriteRule ^profiel/([0-9]+) profiel.php?id=$1 [L]
RewriteRule ^profiel profiel.php [L]

RewriteRule ^notulen/([0-9]+)/delete notulen.php?id=$1&d=1 [L]
RewriteRule ^notulen/([0-9]+) notulen.php?id=$1 [L]
RewriteRule ^notulen notulen.php [L]

RewriteRule ^gegevens gegevens.php [L]

RewriteRule ^mailing mailing.php [L]

RewriteRule ^dirigenteninstructeurs/([a-z]+) instructeurs.php?id=$1 [L]
RewriteRule ^dirigenteninstructeurs instructeurs.php [L]

RewriteRule ^ledenlijst/([0-9]+) ledenlijst.php?id=$1 [L]
RewriteRule ^ledenlijst ledenlijst.php [L]

RewriteRule ^video/youtube/([0-9]+) video.php?youtube=1&id=$1 [L]
RewriteRule ^video/([0-9]+) video.php?id=$1 [L]
RewriteRule ^video video.php [L]

RewriteRule ^contact/([a-z]+) contact.php?$1=1 [L]
RewriteRule ^contact contact.php [L]

RewriteRule ^online online.php [L]

RewriteRule ^activatie/([0-9a-zA-Z]+)/([0-9a-zA-Z]+) activeren.php?g=$1&w=$2 [L]
RewriteRule ^activatie activeren.php [L]

RewriteRule ^ledenagenda/([0-9]+)/([0-9]+) ledenagenda.php?id=$1&j=$2 [L]
RewriteRule ^ledenagenda ledenagenda.php [L]

RewriteRule ^fotos/([0-9]+) fotos.php?id=$1 [L]
RewriteRule ^fotos fotos.php [L]

RewriteRule ^agenda/([0-9]+) agenda.php?id=$1 [L]
RewriteRule ^agenda agenda.php [L]

RewriteRule ^lidworden lidworden.php [L]

RewriteRule ^email/([0-9]+) email.php?id=$1 [L] 
RewriteRule ^email email.php [L]

RewriteRule ^links/([0-9]+) links.php?id=$1 [L] 
RewriteRule ^links links.php [L]

RewriteRule ^downloads/([0-9]+) downloads.php?id=$1 [L]
RewriteRule ^downloads downloads.php [L]

RewriteRule ^uploadafbeelding upload.php [L]

RewriteRule ^vergeten vergeten.php [L]

RewriteRule ^zoeken zoeken.php [L]

RewriteRule ^error error.php [L]


In deze code werkt hetgeen niet wat ik wil:(.

Ook de RewriteConditions werken niet (doe ik waarschijnlijk niet goed). Zou iemand mij kunnen uitleggen hoe ik met RewriteConditions hetgeen kan oplossen?

Acties:
  • 0 Henk 'm!

Verwijderd

Laat eens zien wat je zelf al hebt mbt de rewrite conditions?

Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Verwijderd schreef op woensdag 07 november 2007 @ 13:01:
Laat eens zien wat je zelf al hebt mbt de rewrite conditions?
Ik heb het volgende geprobeerd (ik heb veel meer geprobeerd, maar kan ik niet allemaal meer terughalen :():

--------------------------------------------------------------------------------------------
1.
RewriteCond %{REQUEST_URI} ^(.*)\.php$
RewriteRule ^(.*)\.php$ index.php [L]

2.
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)\.php$ index.php

3.
RewriteCond %{REQUEST_URI} (.*)\.php [NC]
RewriteRule ^(.*)\.php$ index.php

RewriteCond %{REQUEST_URI} !(.*)\.php [NC]

-Hier de volledige code-

--------------------------------------------------------------------------------------------
Ik kom misschien een beetje dom over, maar ik weet niet hoe ik het moet toepassen in mijn situatie :(. Ik heb echt heel veel geprobeerd en nagezocht maar ik kon geen oplossing vinden.

Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Sorry dat ik zo aandring, maar ik wil graag de website online zetten aangezien ie eindelijk af is en ik ben (bijna) de hele dag al bezig om op internet naar een antwoord te vinden, maar ik kan het niet oplossen in mijn situatie.

Zou je mij willen vertellen hoe ik het in mijn situatie kan oplossen?

Heel erg bedankt!!

Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Niemand?

Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Als ik het volgende uitvoer:

code:
1
2
3
4
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.*)\.php$ index.php [L]


Dan werkt het goed. Wanneer een bestand bestaat op de server dan verwijst ie door naar index.php .

Wanneer ik nu het volgende doe:

code:
1
2
3
4
5
6
RewriteEngine on

RewriteRule ^([a-z]+)$ $1.php [L]

RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.*)\.php$ index.php [L]


Dan wordt alles alsnog naar index.php verstuurd, ook wanneer je "www.domein.nl/gastenboek" wilt openen.
Het lijkt wel alsof de 3 regel wordt genegeerd of dat de [L] niet goed werkt waardoor de "gastenboek.php" alsnog door de RewriteCond gaat.

Weet iemand hoe dit kan? (ik hoop echt op een antwoord want het is voor mij erg belangrijk dat dit opgelost wordt)
Pagina: 1