Autor Zpráva
Peet
Profil
Dobrý den jak udělat tento reg. výraz tak aby fungoval?

([^www][a-z]+) -> toto funguje

ale pokud potřebuj přidat ještě další podmínku

([^www][^neco][a-z]+) -> nejde
([^www|neco][a-z]+) -> nejde
([^www&&[^neco]][a-z]+) -> nejde
Tori
Profil
Jestli jsou ty podmínky za sebou, máte tam flag [OR]? http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond
Peet
Profil
pomocí OR jsem to zkoušel ale to není přesně co myslím. potřebuji aby se podmínka splnila jen tehdy pokud se řetězec nebude rovnat ani jednomu slovu


protože když to udělám takto

([^www][a-z]+) [OR]
([^neco][a-z]+)

tak se to stejnak rovná všemu a ta podmínka prostě není splněna.
Tori
Profil
Co chcete říct tímhle: [^www] - neobsahuje řetězec "www"?
Dejte podmínky, které to obsahují, a před ně vykřičník (např. !^www = nezačíná řetězcem "www"). Dají se použít i aserce (možná bude několik malých rozdílů oproti preg_ funkcím).
Peet
Profil
ano tím chci říct neobsahuje řetězec "www" a zároveň potřebuji říct, neobsahuje ani "dalsi retezec" a třeba dalsi a dalsi
Tori
Profil
Neobsahuje www ani wwwněco: RewriteCond %{REQUEST_URI} !www(něco)?
Neobsahuje ani www, ani něco: RewriteCond %{REQUEST_URI} !(www|něco)

([^www][a-z]+) -> toto funguje
Tohle vám zachytí všechno co začíná jedním znakem, který není w, a pak jsou libovolné další znaky. (viz http://www.php.net/manual/en/regexp.reference.character-classes.php)
Peet
Profil
toto nefunguje

RewriteCond %{HTTP_HOST} ^www\.!(www|neco)\.domain\.cz$
Tori
Profil
Peet:
A co to má dělat? (btw vykřičník musí být před regulárem, pokud znamená negaci podmínky)
Peet
Profil
má dělat to že se podmínka provede pouze kdyz bude tvar www.blabla(vše co neobsahuje www nebo neco).domain.cz
Tori
Profil
Zkuste RewriteCond %{HTTP_HOST} !^www\.(www|neco)\.domain\.cz$
A co když bude adresa www.blawwwbla.domain.cz, má projít nebo ne? Třeba takhle by neprošla: (doufám, že jsme nezapomněla něco escapovat v reguláru)
RewriteCond %{HTTP_HOST} !^www\.[^.]*(www|neco)[^.]*\.domain\.cz$
Peet
Profil
Dobře vyzkouším to, ale už jsem to nejspíš vyřešil teď mi došlo že to bere podmínku za podmínkou takže když podmínka pro něco bude před tou obecnou tak mě hodí tam kam má. mám totiž subdoménu která může bejt jakákoliv a pak pár specifických například ucet.domain.cz a to me hodí jinam než ta obecná ;) ale děkuji mnohokrát :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0