Admin modul chyba v odkazu url

jAkErCZ
Člen | 321
+
0
-

Zdravím,

přidal jsem si do svého systému admin modul abych mohl mít administraci s vlastním layoutem ale mám problém kdykoliv vyvolám odkaz
**
localhost/obchod/admin**

tak se ihned tento odkaz nahradí
**
localhost/obchod/www/admin**

ale já nechci aby tam bylo to** www**

Zde přikládám router

/* Administrace */
       $adminModule = new RouteList('Admin');
       $adminModule[] =$adminRouter[] = new Route('admin/<presenter>/<action>/<id>', array(
           'presenter' => 'Home',
           'action' => 'default',
           'id' => NULL,
       ));

       $router[] = $adminModule;

Čím to může být způsobeno?

Díky

jAkErCZ
Člen | 321
+
0
-

Přidávám

Htaccess

<?php

<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteRule ^$ www/ [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} !^www/
        RewriteRule ^(.*)$ www/$1
</IfModule>

?>

App/www/htaccess

<?php

# Apache configuration file (see httpd.apache.org/docs/current/mod/quickreference.html)

# disable directory listing
<IfModule mod_autoindex.c>
	Options -Indexes
</IfModule>

# enable cool URL
<IfModule mod_rewrite.c>
	RewriteEngine On
	# RewriteBase /

	RewriteCond %{HTTPS} off
	# First rewrite to HTTPS:
	# Don't put www. here. If it is already there it will be included, if not
	# the subsequent rule will catch it.
	RewriteRule .* https://%{HTTP_HOST} [L,R=301]
	# Now, rewrite any request to the wrong domain to use www.
	# [NC] is a case-insensitive match
	RewriteCond %{HTTP_HOST} !^www\. [NC]
	RewriteRule .* https://www.%{HTTP_HOST} [L,R=301]

	# prevents files starting with dot to be viewed by browser
	RewriteRule /\.|^\. - [F]

	# front controller
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz|map)$ index.php [L]
</IfModule>

# enable gzip compression
<IfModule mod_deflate.c>
	<IfModule mod_filter.c>
		AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript text/javascript application/javascript application/json
	</IfModule>
</IfModule>

?>
iguana007
Člen | 970
+
0
-

Zkus si tam doplnit to RewriteBase, ktere tam mas zakomentovane ;)

RewriteBase /obchod/
iguana007
Člen | 970
+
+2
-

Jeste pro priste, lepsi je pro localhost tyto veci resit pres hosts a virtual hosts, protoze potom mas rozdilny htaccess pro produkci a development. Totez muze platit i pro layout sablonu, protoze pokud ti projekt nebezi na hlavni domene (v tvem pripade localhost), ale v nejake jeji podslozce, tak se pouziva i HTML tag <base/>, aby ti spravne fungovaly relativni cesty k obrazkum apod.

Ja to resim tak, ze si pro kazdy projekt vytvarim separatni virtualhost pod Apache a do hosts file si dam zaznam pro domena-projektu.cz.local

Zuben45
Člen | 268
+
0
-

myslím, že je problém v htaccess:

RewriteCond %{REQUEST_URI} !^www/

místo

RewriteCond %{HTTP_HOST} !^www\.

REQUEST_URI, pokud se nepletu je vše za doménou :)

vyzkoušej zde – http://htaccess.mwl.be/, když zadám adresu http://example.org/test a htaccess

RewriteCond %{REQUEST_URI} !^www/
RewriteRule ^(.*)$ www/$1

tak dole uvidíš, že tě to přesměruje na http://example.org/www/test ;)

a při

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1

na http://www.example.org/test

Editoval Zuben45 (11. 12. 2017 15:21)

jAkErCZ
Člen | 321
+
0
-

Zuben45 napsal(a):

myslím, že je problém v htaccess:

RewriteCond %{REQUEST_URI} !^www/

místo

RewriteCond %{HTTP_HOST} !^www\.

REQUEST_URI, pokud se nepletu je vše za doménou :)

vyzkoušej zde – http://htaccess.mwl.be/, když zadám adresu http://example.org/test a htaccess

RewriteCond %{REQUEST_URI} !^www/
RewriteRule ^(.*)$ www/$1

tak dole uvidíš, že tě to přesměruje na http://example.org/www/test ;)

a při

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1

na http://www.example.org/test

No na localhostu to prostě nefuguje… to mi to rozhodí celý web… nechápu proč všechno jiný jede ale jakmile dám /admin bum www/admin

Editoval jAkErCZ (11. 12. 2017 17:35)

GEpic
Člen | 562
+
+3
-

na htaccess se vy*er na localu a nastav si virtual host třeba obchod.localhost (.dev už v Chrome nefunguje).

Rešíš zbytečně problém se kterym nepřijdeš na hostingu do styku.

Stačí ti tedy jen ten .htaccess pro „cool url“ ve složce www

httpd-vhosts.conf

<VirtualHost *:80>
    ServerName obchod.localhost
	DocumentRoot C:/wamp64/www/obchod/www/
	<Directory  "C:/wamp64/www/obchod/">
		Options +Indexes +Includes +FollowSymLinks +MultiViews
		AllowOverride All
		Require local
	</Directory>
</VirtualHost>

No a v prohlížeči si zadáš obchod.localhost/admin

Editoval GEpic (11. 12. 2017 18:03)

iguana007
Člen | 970
+
+2
-

GEpic napsal(a):

na htaccess se vy*er

  • je treba upravit i hosts file, jinak ti ta URL nepojede (C:/Windows/system32/drivers/etc/hosts)

Editoval iguana007 (12. 12. 2017 10:39)