Autor Zpráva
frauen
Profil *
Zdravím, řeším následující problém: mám jeden htaccess v rootu webu a pro administraci v adresáři admin má další htaccess. Mam přesměrování adresy bez www na variantu s www pro web. Potřeboval bych však to samé i pro administraci. Jak toho docílím?

htaccess pro web:
<Files .htaccess>
  order allow,deny
  deny from all
</Files>

# mod_rewrite

  RewriteEngine On
  RewriteBase /

  RewriteCond %{REQUEST_URI} !\.[[:alnum:]]+$
  RewriteRule ^(.+[^/])$ /$1/ [R=301,L]

  RewriteCond %{HTTP_HOST} ^domain\.tld [NC]
  RewriteRule (.*) http://www.domain.tld/$1 [R=301,L]

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?path=$1 [L,QSA]


htaccess pro administraci (adresář admin):
<Files .htaccess>
  order allow,deny
  deny from all
</Files>

# mod_rewrite

  RewriteEngine On
  RewriteBase /admin/

  RewriteCond %{REQUEST_URI} !\.[[:alnum:]]+$
  RewriteRule ^(.+[^/])$ /$1/ [R=301,L]

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?path=$1 [L,QSA]


Díky za všechny rady.
Davex
Profil
Pravidlo pro přesměrování domény z prvního .htaccess stačí přidat do druhého a upravit cílové URL:
RewriteCond  %{HTTP_HOST}  ^domain\.tld  [NC]
RewriteRule  (.*)  http://www.domain.tld/admin/$1  [R=301,L]
frauen
Profil *
Funguje, díky. Měl bych ještě jeden dotaz. To přidání lomítka mi pro web funguje, ale v administraci mi to nějak nejde, tedy né tak jak by mělo.

Pro web mám ty lomítka takto:
RewriteCond %{REQUEST_URI} !\.[[:alnum:]]+$
RewriteRule ^(.+[^/])$ /$1/ [R=301,L]


Jak to mám ale upravit pro adresář admin? Lomítka se mi přidávají, ale pokud zadam jakoby cestu adresáře bez lomítka -> domain.tld/admin tak mě to přesměruje na adresu, která zobrazuje umístění mé složky na hostingu. Pokud dám domain.tld/admin/ tak vše funguje jak má. Děkuji za rady.
Davex
Profil
frauen:
tak mě to přesměruje na adresu, která zobrazuje umístění mé složky na hostingu
Tomu nerozumím. Lomítka se přidávají, pouze pokud neexistuje adresář stejného jména?

Mohla by pomoci volba v prvním .htaccess:
DirectorySlash Off
frauen
Profil *
Pokud přidám direktivu DirectorySlash Off, dostanu error 500.

S tím přesměrováním adresy je to tak, že když zadám adresu "mujweb.cz/admin" tak mě to přesměruje na "mujweb.cz/admin//httpd/html/mujweb/www/admin/".
Davex
Profil
Do vyhodnocení cesty zjevně vstupuje jiný řetězec, než který by měl. Nejsou tam nějaká další pravidla, se kterými by to mohlo kolidovat? Třeba virtuální subdomény nebo tak nějak podobně?
frauen
Profil *
htaccess pro administraci:
<Files .htaccess>
  order allow,deny
  deny from all
</Files>

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /admin/

  RewriteCond %{HTTP_HOST} ^domain\.tld [NC]
  RewriteRule (.*) http://www.domain.tld/admin/$1 [R=301,L]

  RewriteCond %{REQUEST_URI} !\.[[:alnum:]]+$
  RewriteRule ^(.+[^/])$ /admin/$1/ [R=301,L]

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?path=$1 [L,QSA]
</IfModule>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: