Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: .htacces mod rewrite  (gelezen 726 keer)

Offline LEDfan

  • Lid
.htacces mod rewrite
« Gepost op: 2012/10/03, 09:05:29 »
Mijn eerste topic hier op het ubuntu forum.

Ik ben er al een tijdje mee bezig, en in #ubuntu-nl konden ze het niet volledig oplossen. Ik probeer namelijk mod_rewrite op een server werkend te krijgen.

.htaccess
RewriteEngine On
RewriteBase /

# Bestaande bestanden of mappen uitsluiten
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule ^(.*?)$ $1 [L]

# Overige RewriteRules onder deze regel
RewriteRule ^(.*)/(.*)/(.*)$ index.php?view=$1&id=$2&name=$3

In apache2.conf heb ik niks veranderd denk ik.
sites-enabled/000-default
<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride All
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

sites-avaible/default
<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride All
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Error in log
[Wed Oct 03 08:42:09 2012] [warn] RewriteCond: NoCase option for non-regex patt$

Ik heb de module aangezet met:
sudo a2enmod rewrite Maar het lijkt gewoon dat de .htaccess niets herschrijft. Als ik naar mijn normaal werkende URL ga krijg ik een 404.
Het .htaccess bestand werkt ook op externe host.


Alvaste bedankt.

EDIT: Ik bedenk me dat ik nog wat info kan toevoegen. De server is de 64Bit server editie van 12.10 en draait als een VM in virtualbox op een Arch Linux systeem.
« Laatst bewerkt op: 2012/10/03, 14:21:52 door LEDfan »

Offline Buzzin

  • Lid
  • Steunpunt: Nee
Re: .htacces mod rewrite
« Reactie #1 Gepost op: 2012/10/03, 14:32:44 »
Je kunt rewrites inderdaad in een .htaccess bestand doen, maar je kunt het net zo goed in de virtualhost file doen.

Overigens: nooit editen in de /sites-enabled/ map, dit zijn alleen symlink naar de sites-available/ map.
(de twee bestanden die jij noemt zijn eigenlijk 1 en het zelfde bestand)

Het is mischien ook handig om even te vermelden wat je probeert te bereiken met de rewrite.
Football: A battle between two teams of mindless thugs over scraps of coloured cloth. Usually accompanied by the spectacle of 22 overpaid primadonnas kicking a ball on a field.
DebianDevuan, KDE & OperaVivaldi addict, RedHat Engineer

Offline LEDfan

  • Lid
Re: .htacces mod rewrite
« Reactie #2 Gepost op: 2012/10/03, 16:45:12 »
Bedankt voor het antwoord.

Ik weet dat ik de htaccess ook daar kan plaatsen, maar ik heb het ook nodig op server waar het enkel in de .htaccess kan.
Ik probeer een URL te herschrijven, en dat werkt perfect op andere servers. (Die niet door mij zijn ingericht)

Bedankt voor de tips.

EDIT: de .htaccess wordt wel degelijk gelezen, als ik mijn site met .htacces wil beveiligen, krijg ik wel een popup.

EDIT2: ik heb de .htaccess code nu gestript tot dit:
RewriteRule ^(.*?)$ $1 [L]
RewriteRule ^(.*)/(.*)/(.*)$ index.php?view=$1&id=$2&name=$3
De error hierboven is daarmee verdwenen.

EDIT3: Ook als ik de volledige inhoud van de directory in de root directory plaats werkt het niet.
EDIT4:Ik heb wordpress op de server gegooid, en daar bij doe de permalinks het perfect.
« Laatst bewerkt op: 2012/10/04, 11:19:14 door LEDfan »

Offline LEDfan

  • Lid
Re: .htacces mod rewrite
« Reactie #3 Gepost op: 2012/10/17, 15:05:14 »
Ik heb nog altijd niet gevonden waarom mijn .htaccess code niet werkt en die van bv. wordpress wel. Ik heb nu een andere server gemaakt met Debian en daar werkt het ook niet op. Ook niet op CentOS.

Is er niemand die weet wat ik fout doe? Op verschillende hosts werkt mijn code perfect.

EDIT: het probleem is eindelijk opgelost.
Ik gebruik nu deze code:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteRule ^(.*)/(.*)/(.*)$ index.php?view=$1&id=$2&name=$3
« Laatst bewerkt op: 2012/10/17, 16:25:22 door LEDfan »