Autor | Zpráva | ||
---|---|---|---|
frauen Profil * |
#1 · Zasláno: 21. 1. 2010, 19:34:26
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 |
#2 · Zasláno: 22. 1. 2010, 22:31:30
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 * |
#3 · Zasláno: 23. 1. 2010, 13:20:50
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 |
#4 · Zasláno: 23. 1. 2010, 15:41:03
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 * |
#5 · Zasláno: 23. 1. 2010, 19:38:23
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 |
#6 · Zasláno: 23. 1. 2010, 19:57:51
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 * |
#7 · Zasláno: 23. 1. 2010, 20:29:03
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> |
||
Časová prodleva: 14 let
|
0