[mod_rewrite] Przekierowanie z domena na www.domena

0

Okej, mam sobie bloga na WordPress i chciałbym zrobić przekierowanie, tak aby z ktos.info/notatki/ przekierowywało na www.ktos.info/notatki/. I tak na przyszłość - nie chcę słuchać o bezsensowności tego rozwiązania i że powinno sie robić dokładnie odwrotnie.

Obecnie .htaccess w katalogu /notatki/ wygląda tak:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /notatki/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /notatki/index.php [L]
</IfModule>

# END WordPress

I obecne przekierowania muszą zostać zachowane. W .htaccess w katalogu / mam coś takiego:

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

i spodziewam się, że trzeba to jakoś połączyć, ale jak wstawiłem te dwie linijki na początek tego .htaccess w /notatki/ (usuwając regułę L) to dostawałem stronę komunikatu 301 i błędne przekierowanie na niej (na ktos.info/notatki/ pojawiał się błąd 301 że przeniesiono stronę na ktos.info/notatki/).

Jakieś rozwiązanie?

0
Ktos napisał(a)

mam coś takiego:

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

Jakieś rozwiązanie?

Hm, jeśli chodzi o mod_rewrite, to zbyt lotny nie jestem (używam tylko podstawowych elementów lub gotowych regułek). Też mam przekierowanie z 'www' na 'bez www', mam niemal identycznie. Niemal. U mnie to by wyglądało tak:

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

Czyli bez $ na końcu, NC nie wiem do czego służy. Ponadto tą regułkę wstawiłem pod koniec .htaccessa, wcześniej mając swoje inne regułki i działa (tyle mi z mod_rewrite wystarczy :] ).

0

Hmm, może faktycznie $ coś robić, ale nie jestem pewien. Chyba przy odwołaniu do ktos.info/notatki/ to host nie jest "ktos.info/notatki/"... [NC] oznacza chyba ignorowanie wielkości znaków.

0

wydaje mi się że wywalenie

RewriteBase /notatki/

czy

/notatki/

z:
RewriteRule . /notatki/index.php [L]

pomoże
za to nie bardzo rozumiem co w tej chwili się dzieje, od kiedy to przeglądarki wyświetlają strony "błędu" 301 ?
jakie nagłówki dostaje przeglądarka po wejściu na ktos.info/notatki/nic ? poza tym niepotrzebnie wywalałeś L przy przenoszeniu tych reguł

0
RewriteEngine On
Options +FollowSymlinks
RewriteCond %{HTTP_HOST} ^domena.pl
RewriteRule ^(.*)$ http://www.domena.pl/$1 [R=permanent,L]

A może tak?

0
Vendro napisał(a)
RewriteEngine On
Options +FollowSymlinks
RewriteCond %{HTTP_HOST} ^domena.pl
RewriteRule ^(.*)$ http://www.domena.pl/$1 [R=permanent,L]

A może tak?

Toć to właśnie pisałem wcześniej (permanent to 301). FollowSymlinks zbędne. A tak poza tym można spróbować headerem przekierować bezpośrednio w PHP.

0

Faktycznie wina $ w mojej regułce. Ostatecznie .htaccess w /notatki/ wygląda tak:

RewriteEngine On

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

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteBase /notatki/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /notatki/index.php [L]
</IfModule>

# END WordPress

i działa chyba wszystko jak powinno. No cóż, byłem blisko, ale faktycznie wypadało nie zamykać wyrażenia regularnego :-)
To teraz jeśli ktoś potrzebuje to może to zmienić z www.domena na domena i używać sobie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1