.htaccess

Status
Niet open voor verdere reacties.

Naughtygirl

Gebruiker
Lid geworden
17 jan 2009
Berichten
174
Ik probeer een .htaccess bestand te maken, maar als ik deze op de server zet, krijg ik de volgende foutmelding als ik de website probeer te bezoeken:
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, service@webmailer.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Ik heb de vraag ook doorgestuurd naar de webhoster, maar zij zeggen dat de foutmelding duid op een mogelijke fout in het .htaccess bestand.
De inhoud van het .htaccess bestand is als volgt:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.slotraceclub.nl$ [NC]
RewriteRule ^(.*}$ http://www.slotraceclub.nl/$1 [L,R=301]

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Wat is er dan precies fout aan de code? De server error log kan ik overigens nergens vinden op de server.

Groetjes Naughtygirl
 
Merk op: Als je een .htaccess bestand aanmaakt in een subdirectory, dan over-ruled deze die van de root EN deze geldt dan alleen voor de directory waar hij in staat. Je kunt dus meerdere .htaccess bestanden maken (ieder in een eigen directory).

Merk op: Frontpage schijnt niet goed overweg te kunnen met het .htaccess bestand.

Merk op: Niet iedere server ondersteund het gebruik van .htaccess bestanden, informeer er naar bij jouw provider!

Merk op: Bepaalde servers verwachten dat je een pad absoluut opgeeft, dus http://www.jouwwebsite.nl/bla.htm i.p.v. /bla.htm!

Merk op: Controleer in je FTP-programma of de bestandsnaam echt ‘.htaccess’ is, en niet ‘.htaccess.txt’ of ‘.htaccess.doc’ .Als de naam in je FTP-programma er anders uitziet, klik je met je rechtermuisknop op het bestandje en verander je de naam in ’.htaccess’.

Vraag is dus hoe sla je het betand op, waarmee maak je de websit, is dat in Wordpress, in Frontpage, in ....??
Had de server al een standaard .htaccess bestand?
Wie is de webhosting?

wat een normaal .htaccess bestand inhoud in WP is bijv. dit:

Code:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Ik zelf heb er een boel bijgezet, waaronder dit:

Code:
<Files .htaccess>
order allow,deny
deny from all
</Files>

en verder security etc.

Lees anders dit eens door: https://www.starthosting.nl/hosting/htaccess.html
 
Laatst bewerkt:
In het FTP-programma staat bij bestandstype: HTACCESS-bestand (das goed, toch?)
De server had geen standaard .htaccess-bestand.
De webhoster is Strato.
Ik heb de website zelf gecodeerd, in php/html/css.
Het bestand staat in de root, waar ook de index.php enzo staat.
 
DAn zou ik eerst een standaard tekst in dat .htaccess bestand zetten en dan kijken of die wel pakt.

Zoals je kan zien is het standaard gebeuren anders dan jij gemaakt hebt.

Vergelijk dit:
Code:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

met die van jou en je ziet wat er niet goed aan is:

Code:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

jij werkt met $ $1.php terwijl dat waarschijnlijk ook bij jou /index.php moet zijn. Ook de .php achter de tweede regel van FILENAME staat er normaal niet en zo zie ik nog meer dingetjes waarvan ik denk dat het niet okee is.
Waar heb je vandaan dat je het zo moet doen? Of heb je dit uit je hoofd gedaan?
 
Ik heb het bestand aangepast zoals jij zei, femke98, maar hij doet het niet. Ik kan de website nu wel bezoeken, maar haalt de etensie .php er niet achter weg.
 
Ik zou graag de extensies in het adres weg willen halen, directory browsen voorkomen, voorkomen dat iemand het bestand zelf (.htacceess) kan lezen, en dat je naar het adres wordt gestuurd met www, om duplicate content te voorkomen.
 
Ik zou graag de extensies in het adres weg willen halen, directory browsen voorkomen, voorkomen dat iemand het bestand zelf (.htacceess) kan lezen, en dat je naar het adres wordt gestuurd met www, om duplicate content te voorkomen.

Kijk, dat is een hele lijst :).

Zou je dit
de extensies in het adres weg willen halen
verder kunnen toelichten? Hoe ziet het er nu uit en hoe zou je willen dat het eruit komt te zien?

Om directory browsen te voorkomen, volg je de stappen zoals hier beschreven. Je voegt dan de volgende code toe aan je .htaccess-bestand:
Code:
Options -Indexes

Redirecten naar het adres met www ervoor, kan met de volgende code, zoals hier beschreven:
Code:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
</IfModule>
Uiteraard moet je example.com nog vervangen door het adres van je eigen website.

Om je .htaccess-bestand af te schermen, kun je de volgende code gebruiken, zoals hier beschreven:
Code:
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

Tot slot, ik ben geen expert op het gebied van .htaccess-bestanden, maar heb bovenstaande gevonden dankzij Google. Geen garantie dus dat het werkt, maar hopelijk heb je er wel wat aan :).
 
Dan krijg je zoiets als dit, hier gevonden:
Code:
<IfModule mod_rewrite.c>
RewriteEngine On

# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://example.com/folder/$1 [R=301,L]

# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]

# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]
</IfModule>

Het lijkt me dat je e.e.a. kunt combineren met de andere regels die redirecten naar het adres met www ervoor zoals eerder voorgesteld:
Code:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
</IfModule>

Echter mijn kennis is niet toereikend om daar een werkend voorbeeld voor te posten. Wellicht dat het werkt als je ze onafhankelijk van elkaar probeert.
 
Ik heb gisteren de code toegevoegd aan het .htaccess-bestand, maar nu kan ik de pagina's van de clubleden en de agenda niet meer bekijken. De rest doet het wel. Ik had per ongeluk die example.com niet aangepast. Ik heb daarna het hele bestand van de server gehaald, maar hij doet het nog steeds niet :) rara hoe kan dat?
Als ik de clubleden-pagina of de agenda wil bekijken, krijg ik deze melding:
Example Domain

This domain is established to be used for illustrative examples in documents. You may use this domain in examples without prior coordination or asking for permission.

Terwijl het .htaccess-bestand er niet eens meer op staat. Best bijzonder, vind ik :)
 
Maak de cache van je webbrowser eens leeg en probeer het dan nog eens. De pagina van de clubleden en de agenda kan ik gewoon bekijken.
 
Ja stom idd, nu doet ie het. Ik heb nu het bestand weer geüpload, hij voert alles netjes uit, alleen nu kan ik niet op het gastenboek en forum komen. Het gastenboek.php staat in de root, maar de verwerk en reacties staan in een map. Komt het dat dit in een map staat? Heb in die map ook het .htaccess-bestand geplaatst, maar dat helpt ook niet.
 
Het zal er denk ik wel mee te maken hebben dat het forum en gastenboek in een afzonderlijke directory staat. Waarschijnlijk zul je in elke subdirectory ook een .htaccess-bestand moeten plaatsen, wel met aangepaste inhoud specifiek voor die directory.

Kun je eens de code van het .htaccess-bestand plaatsen dat nu in je root staat?
 
Dat ziet er als volgt uit:

Code:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^slotraceclub.nl$
RewriteRule (.*) http://www.slotraceclub.nl/$1 [R=301,L]

# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://www.slotraceclub.nl/$1 [R=301,L]

# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]
</IfModule>

<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

Options -Indexes
 
Ik vrees dat ik dit niet voor je kan oplossen, daarvoor is mijn kennis van .htaccess-bestanden niet toereikend. Misschien dat iemand anders kan helpen?
 
Ok, in ieder geval bedankt voor je hulp tot dusver!

Iemand anders die verder kan helpen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan