Toon posts:

Ubuntu - Mod rewrite in apache2 installeren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo iedereen, ik ben al een hele tijd aan het proberen om url rewriting toe te passen op mijn locale server.
Dit wil echter niet lukken.
Het werkt op mijn productie wel (externe host) dus qua scripts zit het zeker goed.
Ik doe dus ergens anders iets fout, maar zou niet weten wat nadat ik alles heb geprobeerd.

Ik zal even overlopen wat ik allemaal heb geprobeerd.

1.Op google vond ik deze stappen:
To enable the mod_rewrite module at apache, I just simply do this 3 step:

First, add the rewrite.load to /etc/apache2/mods-enabled/
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/

Second, edit the apache configuration for my virtualhosting. For example, in my computer I only have one virtual hosting (/var/www) that is default from installation, so I make some adjustment for that (In my case I have to edit this file /etc/apache2/sites-enabled/000-default)
sudo vi /etc/apache2/sites-enabled/000-default
Change the Allowoverride value to all for the document root directory
For example, I made change to this part of the configuration:

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
#RedirectMatch ^/$ /apache2-default/
</Directory>


Finnaly, just restart the apache
sudo /etc/init.d/apache2 restart

2.als ik in mijn var/www een bestandje zet "info.php" en deze uitvoer in mijn browser staat bij modules wel degelijk mod_rewrite.

3. als ik volgend command uitvoer verschijnt de module ook : apache2ctl -M
rewrite_module (shared)

4. in var/www zit dus het bestand .htaccess en een testfile "nieuwsartikel.php".
Het .htaccessbestand bevat het volgende:
RewriteEngine On
RewriteBase /
RewriteRule ^nieuws/artikel/(.*)/$ nieuwsbericht.php?id=$1


Iemand een idee of ik iets over het hoofd zie of iets fout doe?
Ben er nu echt beu aan, niets wat ik probeer lijkt te werken en zo moeilijk zou het toch niet moeten zijn?

Alvast bedankt voor jullie reacties.

  • gertvdijk
  • Registratie: November 2003
  • Nu online
Werkt je .htaccess file überhaupt? Zo niet, moet je het gebruik van .htaccess files (veiligheidsrisico!) expliciet toestaan met AllowOverride (zie Apache documentatie).
edit: moet beter lezen
Werkt het opnemen van Rewrites in de Apache config direct (dus niet in .htaccess file) wel?

Sowieso is die how-to die je hebt al niet al te goed... voor het enablen van modules zou ik niet zelf gaan klooien met symlinks, aangezien daarvoor een tooltje is die alles regelt omtrent het activeren van modules: a2enmod. Een degelijke how-to had je daarop gewezen.

Daarnaast, beetje erg basic ook: activeer een RewriteLog en kijk wat er misgaat

[ Voor 69% gewijzigd door gertvdijk op 13-01-2010 11:31 ]

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog


  • MueR
  • Registratie: Januari 2004
  • Laatst online: 13:26

MueR

Admin Devschuur® & Discord

is niet lief

Anyone who gets in between me and my morning coffee should be insecure.


Verwijderd

Topicstarter
gertvdijk schreef op woensdag 13 januari 2010 @ 11:27:
Werkt je .htaccess file überhaupt? Zo niet, moet je het gebruik van .htaccess files (veiligheidsrisico!) expliciet toestaan met AllowOverride (zie Apache documentatie).
edit: moet beter lezen
Werkt het opnemen van Rewrites in de Apache config direct (dus niet in .htaccess file) wel?

Sowieso is die how-to die je hebt al niet al te goed... voor het enablen van modules zou ik niet zelf gaan klooien met symlinks, aangezien daarvoor een tooltje is die alles regelt omtrent het activeren van modules: a2enmod. Een degelijke how-to had je daarop gewezen.

Daarnaast, beetje erg basic ook: activeer een RewriteLog en kijk wat er misgaat
-Werkt het opnemen van Rewrites in de Apache config direct (dus niet in .htaccess file) wel?
Ik snap niet direct wat je hiermee bedoelt :?

a2enmod heb ik ook uitgevoerd, dat klopt, was ik vergeten te vermelden en deze zei dat de module geïnstalleerd is.

Daarnaast, beetje erg basic ook: activeer een RewriteLog en kijk wat er misgaat
Ben nog niet zo'n geavanceerd gebruiker, dus dit heb ik nog niet geprobeerd, zal me hiermee eens bezighouden :)
EDIT:
Ik heb volgende regels bijgevoegd in .htaccess:
RewriteLog "home/ubuntuconfig/logfile.log"
RewriteLogLevel 5

Resultaat in browser is nu:
"Internal Server Error"
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@localhost and confirm them of the time the error occured, 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.

[ Voor 17% gewijzigd door Verwijderd op 13-01-2010 12:04 ]


  • gertvdijk
  • Registratie: November 2003
  • Nu online
Verwijderd schreef op woensdag 13 januari 2010 @ 11:52:
-Werkt het opnemen van Rewrites in de Apache config direct (dus niet in .htaccess file) wel?
Ik snap niet direct wat je hiermee bedoelt :?
Ik zou zeggen; lees je in in wat je aan het doen bent... Hint: Je configureert Apache in een config file en je kan waarden overriden met een .htaccess file (hence: AllowOverride).
Verwijderd schreef op woensdag 13 januari 2010 @ 11:52:
EDIT:
Ik heb volgende regels bijgevoegd in .htaccess:
RewriteLog "home/ubuntuconfig/logfile.log"
RewriteLogLevel 5

Resultaat in browser is nu:
"Internal Server Error"
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@localhost and confirm them of the time the error occured, 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.
  • Tis ook moeilijk om een correct, volledig pad op te geven naar een logfile :P En kan de webserver daar wel schrijven? lijkt me sterk dat user www-data zomaar kan schrijven in /home...
  • Configuratie van je webserver doe je in de config van je webserver, niet in een .htaccess file...
  • Volg suggesties in foutmeldingen. ;)

[ Voor 3% gewijzigd door gertvdijk op 13-01-2010 12:26 ]

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog


Verwijderd

Topicstarter
gertvdijk schreef op woensdag 13 januari 2010 @ 12:24:
  • Tis ook moeilijk om een correct, volledig pad op te geven naar een logfile :P En kan de webserver daar wel schrijven? lijkt me sterk dat user www-data zomaar kan schrijven in /home...
  • Configuratie van je webserver doe je in de config van je webserver, niet in een .htaccess file...
  • Volg suggesties in foutmeldingen. ;)
ik had een / voor home staan hoor, verkeerd overgetypt :p
Nu, als ik daar bijvoorbeeld /var/www/logfile.log zet blijft de error hetzelfde terwijl ik de file zeker genoeg rechten heb gegeven.

wat de allowoverride betreft, dat lijkt me goed te staan:

#
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives. See also the AllowOverride
# directive.
#

AccessFileName .htaccess

[ Voor 16% gewijzigd door Verwijderd op 13-01-2010 12:31 ]


  • gertvdijk
  • Registratie: November 2003
  • Nu online
Verwijderd schreef op woensdag 13 januari 2010 @ 12:29:
ik had een / voor home staan hoor, verkeerd overgetypt :p
Copy&Paste gebruiken? 8)7 Scheelt een berg werk, een stuk zekerder van het niet maken van kleine foutjes, verwarring bij anderen op het forum e.d...
Verwijderd schreef op woensdag 13 januari 2010 @ 12:29:
Nu, als ik daar bijvoorbeeld /var/www/logfile.log zet blijft de error hetzelfde terwijl ik de file zeker genoeg rechten heb gegeven.
Nogmaals: volg de suggesties in de foutmelding op!! Oftewel; wat staat er in de algemene logfile? (Ik had het nog wel onderstreept in mijn vorige post...)
Verwijderd schreef op woensdag 13 januari 2010 @ 12:29:
wat de allowoverride betreft, dat lijkt me goed te staan:
Daar gaat het niet om... het gaat mij erom dat je je webserver probeert te configureren a.d.h.v. een .htaccess file... Voor rewrites kan dat nog, maar een RewriteLog directive opgeven kan helemaal niet in een .htaccess volgens mij. Start gewoon eens met dingen opnemen in de webserver config in plaats van .htaccess.

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog


Verwijderd

Topicstarter
copy pasten ging niet omdat ik de browser in mn virtuele machine niet meewilde :p

wat die log betreft, dit had ik toch online uit enkele voorbeelden hoor, dat je dit gewoon in je .htaccess opgeeft:
http://perishablepress.co...r-own-apache-rewrite-log/

De algemene logfile heb ik natuurlijk bekeken, maar daar wordt ik totaal niet wijzer uit, ben geen geavanceerde linuxkenner dus het is niet zo evident voor mij.

  • gertvdijk
  • Registratie: November 2003
  • Nu online
Verwijderd schreef op woensdag 13 januari 2010 @ 13:55:
copy pasten ging niet omdat ik de browser in mn virtuele machine niet meewilde :p
? Je config beheer je niet met een browser, hoor...
Verwijderd schreef op woensdag 13 januari 2010 @ 13:55:
wat die log betreft, dit had ik toch online uit enkele voorbeelden hoor, dat je dit gewoon in je .htaccess opgeeft:
http://perishablepress.co...r-own-apache-rewrite-log/
Ja, daar heb je wel gelijk in. Het kan nuttig zijn om per .htaccess file een aparte logging te hebben voor debugging.
Verwijderd schreef op woensdag 13 januari 2010 @ 13:55:
De algemene logfile heb ik natuurlijk bekeken, maar daar wordt ik totaal niet wijzer uit, ben geen geavanceerde linuxkenner dus het is niet zo evident voor mij.
Post hem dan hier... (of op pastebin met link) 8)7

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog


Verwijderd

Topicstarter
gertvdijk schreef op woensdag 13 januari 2010 @ 14:44:
[...]

? Je config beheer je niet met een browser, hoor...

nee ik bedoel van mn textfile in mn vm naar de browser voor deze thread :p anyway ontopic:
[...]

Post hem dan hier... (of op pastebin met link) 8)7
Ik heb eens op mn gemak de errorlog bekeken en heb het gevonden :), allez de fout toch...:
[alert] [client 127.0.0.1] /var/www/.htaccess: RewriteLog not allowed here

die log staat dus in dezelfde map als mijn .htaccess en heet "logbestand.log"

Heb geprobeerd met chmod 777 voor de zekerheid, maar zonder resultaat, roep ik het bestand verkeerd aan ofzo?

EDIT: in mijn apache2.conf krijg ik dezelfde fout dus daar werkt het ook niet.

[ Voor 5% gewijzigd door Verwijderd op 13-01-2010 16:17 ]


  • gertvdijk
  • Registratie: November 2003
  • Nu online
Verwijderd schreef op woensdag 13 januari 2010 @ 16:01:
Ik heb eens op mn gemak de errorlog bekeken en heb het gevonden :), allez de fout toch...:
[alert] [client 127.0.0.1] /var/www/.htaccess: RewriteLog not allowed here
Is duidelijk dat je AllowOverride niet geactiveerd is... Herstart je Apache (telkens) nadat je de wijzigingen in de config hebt aangepast?

En bovendien... Lees eens goed de offciële documentatie door:
When (not) to use .htaccess files

In general, you should never use .htaccess files unless you don't have access to the main server configuration file. There is, for example, a prevailing misconception that user authentication should always be done in .htaccess files. This is simply not the case. You can put user authentication configurations in the main server configuration, and this is, in fact, the preferred way to do things.

.htaccess files should be used in a case where the content providers need to make configuration changes to the server on a per-directory basis, but do not have root access on the server system. In the event that the server administrator is not willing to make frequent configuration changes, it might be desirable to permit individual users to make these changes in .htaccess files for themselves. This is particularly true, for example, in cases where ISPs are hosting multiple user sites on a single machine, and want their users to be able to alter their configuration.

However, in general, use of .htaccess files should be avoided when possible. Any configuration that you would consider putting in a .htaccess file, can just as effectively be made in a <Directory> section in your main server configuration file.

There are two main reasons to avoid the use of .htaccess files.

The first of these is performance. When AllowOverride is set to allow the use of .htaccess files, Apache will look in every directory for .htaccess files. Thus, permitting .htaccess files causes a performance hit, whether or not you actually even use them! Also, the .htaccess file is loaded every time a document is requested.

Further note that Apache must look for .htaccess files in all higher-level directories, in order to have a full complement of directives that it must apply. (See section on how directives are applied.) Thus, if a file is requested out of a directory /www/htdocs/example, Apache must look for the following files:
Met andere woorden: gebruik in jouw geval geen .htaccess.

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog


Verwijderd

Topicstarter
ok bedankt, ben opnieuw begonnen op mijn andere pc en daar werkt het in ieder geval wel.
AllowOverride stond in ieder geval echt wel aan in de configfile :s

bedankt voor de hulp!

Nu heb ik wel een praktisch vraagje en hoop dat het hier nog mag.

Op de productieserver doe ik hetvolgende:
RewriteRule ^nieuws/$ nieuws.php
RewriteRule ^nieuws/(.*)/$ nieuwsbericht.php?id=$1
RewriteRule ^nieuws/([0-9]+)/([a-zA-Z0-9_-]+)\.html$ nieuwsbericht.php?id=$1

dit werkt prima, op mijn testserver gaat hij echter altijd naar nieuws.php.
Als ik nieuws.php even verander in nieuwss.php ofzo dan werkt het prima en gaat hij bij een url wel naar nieuwsbericht.php

De url is dan als volgt:
http://localhost/nieuws/ (nieuws.php met per pagina een korte samenvatting van 5 artikels)
http://localhost/nieuws/1261482479/de-titel-van-het-bericht.html voor het artikel (nieuwsbericht.php)

[ Voor 4% gewijzigd door Verwijderd op 13-01-2010 23:54 ]


Verwijderd

Topicstarter
niemand een idee?
Pagina: 1