.htaccess in mod_rewrite
 
iNC 9. feb 2016 07:57:39 Pridružen od:
2. apr 2010
52 objav
36 3 2
#1

Ž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.


všeč(0) ni všeč(0) spam(0)
PHP
SQL
HTML
JS
Angular 5
Unix & OS X
 
SlimDeluxe 9. feb 2016 11:38:39 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#2

404 je cool napaka... če bi bil 500 bi bil problem z konfiguracijo ali htaccessom. 404 pa je samo to da "stran ni bila najdena", torej slab rewrite delaš... Na prvo oko, manjka ti skripta ki naj se izvede?

Npr.

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


všeč(1) ni všeč(0) spam(0)
Freelance Web Developer
 
iNC 9. feb 2016 11:50:43 Pridružen od:
2. apr 2010
52 objav
36 3 2
#3

Skripto, nekaj v zvezi s tem imam napisano v PHPju če misliš tako skripto. Sam .htaccess file pa je zagotovo pravilno napisan ali bi ga tudi moral kaj spremeniti, ker koliko sem gledal po googlu nekateri priporočajo razne stvari kot so: Options Indexes FollowSymLinks MultiViews in AllowOverride AuthConfig FileInfo Indexes Limit Options=All, MultiViews



Edit:

še to recimo prvo (home page) stran pri prikaže normalno če kliknem recimo zavihek RSS pa potem dobim ta 404 Error. Samo za info če kaj morebiti pomaga


všeč(0) ni všeč(0) spam(0)
PHP
SQL
HTML
JS
Angular 5
Unix & OS X
 
kelvan 10. feb 2016 07:15:49 Pridružen od:
19. okt 2007
891 objav
658 122 26
#4

kako imaš nastavljen default document v confu (ali pa htaccessu)?


všeč(1) ni všeč(0) spam(0)
 
iNC 10. feb 2016 07:23:13 Pridružen od:
2. apr 2010
52 objav
36 3 2
#5

Upam da si mislil ta default ki se nahaja pod sites-available


<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName ImeMojeDomene.net
ServerAlias ImeMojeDomene.net www.ImeMojeDomene.net
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
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 error

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
všeč(0) ni všeč(0) spam(0)
PHP
SQL
HTML
JS
Angular 5
Unix & OS X
 
kelvan 10. feb 2016 16:58:21 Pridružen od:
19. okt 2007
891 objav
658 122 26
#6

Poskušaj tako, kot je napisal SlimDeluxe




SlimDeluxe:

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




Se pravi da v rule obvezno navedeš tudi ime fajla


všeč(0) ni všeč(0) spam(0)
 
iNC 10. feb 2016 18:22:48 Pridružen od:
2. apr 2010
52 objav
36 3 2
#7

@kelvan: hvala za dodatno razlago. Sem poizkusil vendar neuspešno še vedno mi javla 404 error.


všeč(0) ni všeč(0) spam(0)
PHP
SQL
HTML
JS
Angular 5
Unix & OS X
 
kelvan 10. feb 2016 19:53:52 Pridružen od:
19. okt 2007
891 objav
658 122 26
#8

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


všeč(1) ni všeč(0) spam(0)
 
SlimDeluxe 10. feb 2016 20:10:22 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#9

Probaj en osnovni rewrite:


RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ index.php?test=$1

V RewriteBase moraš imeti relativno pot, če imaš skripto v podmapi in ne v vhost rootu



V index.php pa:


<?php
var_dump($_GET['test']);
všeč(1) ni všeč(0) spam(0)
Freelance Web Developer
 
iNC 11. feb 2016 06:25:41 Pridružen od:
2. apr 2010
52 objav
36 3 2
#10

@kelvan: bom preveril danes v popoldanskem času pa potem javim.

@SlimDeluxe: tukaj pa mi javi NULL.



Zadevo imam v root mapi (var/www)


všeč(0) ni všeč(0) spam(0)
PHP
SQL
HTML
JS
Angular 5
Unix & OS X
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se