Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [.htaccess] uniwersalne przekierowanie z www na bez www
Forum PHP.pl > Forum > Serwery WWW > Apache
Hinhan
Witam,

poszukuję informacji jak przekierować adres dowolnej domeny (nie wpisując jej nazwy) z 'www' na bez 'www'.
Próbowałem kombinować z
  1. RewriteCond %{HTTP_HOST} ^www\.%{HTTP_HOST}$ [NC]
  2. RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

ale bez efektów. Czy da się w ogóle coś takiego zastosować?


[EDIT]
ok do zamknięcia

  1. RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  2. RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
szajens
a ja bym potrzebował z 'bez www' na 'www'

przyznam że mam kłopot
Pyton_000
http://lmgtfy.com/?q=htaccess+non+www+to+www
szajens
przekierowanie uniwersalne 'www na bez www':
Kod
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]


przekierowanie uniwersalne 'bez www na www':

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




zastanawiam się dlaczego nie działa ten sposób:

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



jako że to odwrotność, mógłby mi ktoś to wytłumaczyć?
trueblue
W przypadku RewriteCond z negacją nie można się odwołać do "zmatchowanej" grupy - referencja nie istnieje.

P.S. W RewriteRule wyrzuć backslash'e przed kropką.
szajens
Cytat(trueblue @ 19.09.2015, 15:19:44 ) *
W przypadku RewriteCond z negacją nie można się odwołać do "zmatchowanej" grupy - referencja nie istnieje.

P.S. W RewriteRule wyrzuć backslash'e przed kropką.


Witam, dzieki niestety nie mogę dac pomógł. Moglbys podeslac jakis link wyjasniajacy mi to zagadnienie?

Czy reguły wpisane przeze mnie są technicznie prawidłowe?

Sorry za literówki, korzystam z androida
trueblue
Zagadnienie wyjaśniłem Ci wyżej. W warunku z negacją nie ma backreferencji.
U Ciebie wynikiem w tym przypadku:
Kod
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www\.%1/$1 [R=301,L]

będzie:
http://www\.%1/grupa_z_rewrite_rule

Tak więc technicznie jest to źle, dodatkowo kropka, o której pisałem.


Dla RewriteRule (dla RewriteCond jest identycznie):
Cytat(http://httpd.apache.org/docs/trunk/mod/mod_rewrite.html)
When using the NOT character to negate a pattern, you cannot include grouped wildcard parts in that pattern. This is because, when the pattern does NOT match (ie, the negation matches), there are no contents for the groups. Thus, if negated patterns are used, you cannot use $N in the substitution string!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.