Autor | Zpráva | ||
---|---|---|---|
xiaoming Profil |
Mam slozku form, kde je index.html, ktery ma jako action form.php.
V htaccess public_html mam RewriteRule ^(?:form2|form3)(?:/(.*)|/?)$ /form/$1 [L] Jak mam zmenit ten index.html popr. htaccess? |
||
Keeehi Profil |
#2 · Zasláno: 3. 9. 2015, 10:20:28
A na jakou URL se odesílá formulář?
|
||
xiaoming Profil |
#3 · Zasláno: 3. 9. 2015, 12:02:33
Formulář se fyzicky nachází na form/form.php, URL bude form2/form.php resp. form3/form.php
|
||
Keeehi Profil |
#4 · Zasláno: 3. 9. 2015, 12:34:07
Tak jinak, co je vyplněné v atributů action toho formuláře?
|
||
xiaoming Profil |
#5 · Zasláno: 3. 9. 2015, 12:43:47
form.php
|
||
juriad Profil |
Jak funguje přepis adres v prohlížeči (například, kam pošle vyplněný formulář):
1) Prohlížeč se podívá na atribut (action) a odstraní vše za #. 2) Pokud je uvedený absolutní protokol (http, https apod.), nic neřeší a považuje celý atribut za adresu 3) Pokud je uvedený relativní protokol (začíná //), doplní k atributu ten aktuální a považuje to za adresu 4) Jinak se odvozuje adresa z aktuální adresy: 5) Pokud začíná lomítkem, vezme se aktuální protokol a doména a za ní se hned připojí adresa z atributu 6) Pokud začíná něčím jiným, vezme se aktuální adresa, odstraní se vše za posledním lomítkem a tam se připlácne obsah atributu. 7) Pokud je action prázdná, použije se aktuální adresa. 8) Před použitím adresy se provede normalizace cesty: 8.1) Pokud adresa obsahuje podvýraz /./ , nahradí se tato část za / .
8.2) Pokud adresa obsahuje /něco/../ , nahradí se to za / .
8.3) Pokud adresa obsahuje // , nahradí se za / .
9) Část za # z aributu (či aktuální stránky v případě 7) si prohlížeč zapamatuje a doplní ji k aktuální adrese při načítání cílové stránky. Pokud je aktuální adresa http://example.com/form2 a action="form.php" , bude cílová adresa http://example.com/form.php
Pokud je aktuální adresa http://example.com/form2/ a action="form.php" , bude cílová adresa http://example.com/form2/form.php
S tímto chováním nemá .htaccess a server obecně vůbec nic společného. |
||
xiaoming Profil |
#7 · Zasláno: 3. 9. 2015, 13:27:16
Díky, k vyřešení problému nakonec stačilo přidat lomítko na konec
RewriteCond %{REQUEST_URI} !(/$|\.) RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] |
||
Časová prodleva: 9 let
|
0