Door
Jan Volker
op 02-05-2019 20:23
gewijzigd op 02-05-2019 20:24
2.968 views
Beste ,
Ik probeer via .htaccess in te stellen dat `.php?id= niet wordt weergegeven in de URL. Ik probeer dit te realiseren met de volgende regel:
RewriteRule ^Change/(.*)$ Change.php?id=$1 [L]
Echter, is dit niet het geval. Wanneer ik hier naar navigeer krijg ik een Internal Server Error (The server encountered an internal error or misconfiguration and was unable to complete your request).
Mijn .htaccess ziet er als volgt uit:
RewriteEngine on
RewriteRule ^Change/(.*)$ Change.php?id=$1 [L]
Hoi Ariën,
Daar heb ik al in gekeken. Ik weet alleen niet of de melding te maken heeft met .htaccess. Meest recente regel uit error_log is:
[Thu May 02 00:11:01.878760 2019] [core:notice] [pid 3230] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
[size=xsmall]Toevoeging op 02/05/2019 21:46:13:[/size]
Dit is trouwens een Apache Error Log (var/log/httpd/error_log)
Als Apache in CGI-modus draait, wat blijkbaar aanbevolen wordt, werken de directives php_value en php_flag niet in .htaccess bestanden, deze veroorzaken dan Internal Server Errors.
Je kunt een php.ini gebruiken, een .user.ini (?) in je webdirectory (let op initiele punt) gebruiken, of simpelweg het .htaccess bestand gebruiken, maar dan met de .ini-opmaak:
<setting> = <value>
bijvoorbeeld
upload_max_filesize = 2M
Dan is het misschien handiger om dingen regel per regel te verwijderen om te zien wat de boosdoener is.
Wat je nog kunt proberen is .php achter %{REQUEST_FILENAME} te verwijderen, volgens mij hoort die extentie daar niet thuis.
En moet dat niet !-f zijn? Tenzij al je PHP-scripts in de webdirectory staan, wat in geval van gebruikmaking van rewriterules mogelijk niet echt handig is, omdat je dan "botsingen" kunt krijgen tussen virtuele namen en bestaande bestanden?
Daarnaast is het ook handiger om alles naar één script te sturen - nu heb je tig "voordeuren" in je applicatie, het is handiger om slechts één enkele voordeur (single point of entry) te hebben.
Als Apache in CGI-modus draait, wat blijkbaar aanbevolen wordt, werken de directives php_value en php_flag niet in .htaccess bestanden, deze veroorzaken dan Internal Server Errors.
Je kunt een php.ini gebruiken, een .user.ini (?) in je webdirectory (let op initiele punt) gebruiken, of simpelweg het .htaccess bestand gebruiken, maar dan met de .ini-opmaak:
<setting> = <value>
bijvoorbeeld
upload_max_filesize = 2M
oftewel, probeer eens "php_value" te verwijderen.
Klopt, maar op servers valt ook 'htscanner' te installeren die deze php-flags wel in deze situatie laten werken in .htaccess. Ik weet dat DirectAdmin ervan voorzien is ;-)
Klopt, maar op servers valt ook 'htscanner' te installeren die deze php-flags wel in deze situatie laten werken in .htaccess. Ik weet dat DirectAdmin ervan voorzien is ;-)
Maar waarom zou je een extra mod aanbrengen die een .htaccess patcht? :/
Gebruik gewoon syntax die direct werkt.