Autor Zpráva
DarkMeni
Profil
Zdravím, je možné nějak přepsat (neodstraňovat) znak : z adresy v %{REQUEST_FILE} (za posledním lomítekm) na jiný znak?

Z návodu jsem si opsal kód pro .htaccess na podstrčení obsahu, aby místo "stranka.cz/hodnoty proměnných" server začal zpracovávat "stranka.cz/index.php?query_string=hodnoty%20(mezera)prom%(kód pro ě)nn%(kód pro ý)ch" a tam si s tím už poradil php skript. Ale když budu potřebovat najít třeba adresu "stranka.cz/12.34.56.78:90" takže vlastně "stranka.cz/index.php?query_string=12.34.56.78:90" tak místo toho dostanu Forbidden (že nemam přístup ke složce "/12.34.56.78:90"), nevim kvůli čemu to je, ale bez : to funguje jak má (tak jí třeba bere jako port nebo nevim co). Tak je možné nějak před podstrčením tu : přepsat třeba na .. nebo cokoliv, ale aby to po zadání této adresy začalo zpracovávat ten skript co má (v php pak třeba .. zase přepíšu na :).
Kajman
Profil
Jaká pravidla pro přepis teď používáte?
DarkMeni
Profil
Celý sobor .htaccess vypadá zatím jen takto:
RewriteEngine On
RewriteBase /
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) /?query=$1
Ale zkoušel hned za RewriteBase (i když nevim jestli tam toto i to Options není zbytečný, ale je to tak v návodu) přidat něco jako:
RewriteEngine On
RewriteBase /
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} :
RewriteRule \.\. $1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) /?query=$1
A tak podobně. Ale buď to házelo 500ISE nebo to nedělalo to, co sem chtěl aby to dělalo (nepřepisovalo dvojtečku), a pak jsem dostal Forbidden.
Davex
Profil
V prvním pravidle přepisuješ na hodnotu $1, která nic neobsahuje. Krom toho to pravděpodobně nebude vůbec fungovat v Apache na Windows, protože dvojtečka je určena pro speciální názvy zařízení a Apache tuto cestu zablokuje ihned po přijetí požadavku.
DarkMeni
Profil
Aha, takže na Windowsu ne, a díky za vysvětlení proč to nejde.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0