.htaccess in mod_rewrite

Živjo,

skozi celoten podaljšan vikend sem sem ubadal s mod_rewrite, glede na to da sem samouk pri teh stvareh bi potreboval vašo pomoč oz. nasvet.

Uporabljam
Apache 2 (2.2.22)
PHP 5.4.28-1~dotdeb.1
OS: Debian

Ko zaženem phpinfo mi pokaže da je modul mod_rewrite uspešno nameščen.

V ssh ko sem nameščal mod_rewrite mi je prikazalo to, je to vredu ali ne?

Po tem ukazu sem tudi restartal apache server

Moj .htaccess file pa je sledeči:

Options -Indexes
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index\.
RewriteCond %{REQUEST_URI} !^/$

RewriteRule ^([^/]*)$ /?page=$1 [L,QSA]
RewriteRule ^([^-]*)/([^-]*)/$ /?page=$1&act=$2 [QSA,L]

RewriteRule ^rss/([^/]*)$ /?page=rss&cat=$1 [L]
RewriteRule ^account/([0-9]+)$ /?page=account&next=$1 [QSA,L]

Problem je v tem, da mi vrže vedno 404 error. Sedaj me zanima, če bi mi kdo znal pomagati/svetovati kje sem naredil napako.

14 odgovorov

kelvan:
Najprej še enkrat preveri pravice na tej mapi in vseh fajlih v njej :)

Potem pa še:
Options FollowSymLinks
AllowOverride All
DirectoryIndex index.php

Zdej glede na to, da je OS Debian... če ne gre za default sajt - a si naredil nov sajt v /etc/apache2/sites-available in ga potem enejblal z a2ensite? V tem primeru bo config za specifičen sajt v tej mapi.
Večino informacij boš našel tule

Situacija je taka file apache2/sites-available je chmood 755, datoteka v njem default ter default-ssl sta chmood 644.

@SlimDeluxe očitno sva se napačno razumela. Stran je na http://domena.si, se pravi ni na kakršnikoli poddomeni ali drugi mapi.

Kolikor razmišljam kakšen bootrap ali pa smarty tpl najbrž tukaj ne igrata pomembne vloge ali pač ? Že vnaprej najlepša hvala obema ker mi dejansko veliko pomagata, saj se sam srečujem s takimi težavami prvič...

narediti moraš novo datoteko za ta sajt in ga potem omogočiti. Permišni v tej mapi ne igrajo nobene vloge, igrajo pa vlogo v mapi, kjer sajt dejansko je (verjetno /var/www/domena.si)

11

na ftp serverju imam fajle od strani direktno v /var/www in potem imam recimo notri
/var/www/index.php
/var/www/.htaccess
/var/www/main.php
etc...

ker imam dejansko na strežniku samo to stran. Glede na situacijo se bolj kot ne nagibam k možnosti, da bi nekomu pač plačal da mi stvar uredi. Ker očitno tole kljub vaši pomoči mi ne bo uspelo rešiti ...

Se opravičujem za bump teme ampak mogoče bom še komu pomagal s to rešitvijo.

v /etc/apache2/sites-available/default zamenjal moje nastavitve s temi in čudežno deluje.

<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 None
  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
</VirtualHost>

Hvala še enkrat vsem ki ste mi pomagali pri tem problemu.