Zobacz pełną wersję : Zamiana adresu bez WWW... na adres z WWW
Apache przekierowuje do strony po wpisaniu adresu np.: www.domena.pl (http://www.domena.pl). Moge aliasem przekierowac z Apache adres na sama domene "domen.pl", ale administrator chce "aby po wpisaniu samej domeny [domena.pl] user zostal przeniesiony do www.domena.pl" (cytat).
Jak moge to zrobic?
---
Errata.
Ktos mi doradzil zeby w htaccess.txt (plik standardowy z instalacji joomli) dopisac:
RewriteEngine On (ten wpis juz jest)
RewriteCond %{HTTP_HOST} ^domena.pl [NC]
RewriteRule .* http://www.domena.pl/ [R=301,L]
Czy to dobra rada?
Czy nie ma bledow?
Witam,
RewriteCond %{HTTP_HOST} ^domena.pl$ [NC]
RewriteRule ^(.*)$ http://www.domena.pl/$1 [R=301,L]
Tak jak wyżej powinno działać no, ale trzeba jeszcze zmienić nazwę pliku z htaccess.txt na .htaccess i mod_rewrite musi być włączony.
Witam,
RewriteCond %{HTTP_HOST} ^domena.pl$ [NC]
RewriteRule ^(.*)$ http://www.domena.pl/$1 [R=301,L]
Tak jak wyżej powinno działać no, ale trzeba jeszcze zmienić nazwę pliku z htaccess.txt na .htaccess i mod_rewrite musi być włączony.
Wlaczylem, zmienilem nazwe i nic z tego.
Moze to problem Apache i ServerAlias?
Jezeli w ServerAlias nie wpisze domena.pl to wczytuje mi sie pierwsza z kolei strona (plik conf zaczynajacy sie na "a").
Po dopisaniu domena.pl w ServerAlias w pasku przegladarki jest dalej domena.pl, a nie jak potrzebiuje www.domena.pl
Moj plik conf Apache:
<VirtualHost *:80>
DocumentRoot /var/www/html/katalog
ServerName www.domena.pl
ServerAlias domena.pl
</VirtualHost>
...
Moj plik conf Apache:
<VirtualHost *:80>
DocumentRoot /var/www/html/katalog
ServerName www.domena.pl
ServerAlias domena.pl
</VirtualHost>
Sorki pliku konfiguracji apache-a nigdy na oczy nie widziałem:hmm: raz, że nie mam do niego dostępu dwa, że nie jest mi on potrzeby.
Mam u siebie taki kod w .htaccess jak podałem wyżej a raczej jego wersję na przekierowanie bez www i działa - więcej na ten temat nie wiem:)
No to bede mial problem.
Od rana czytam rozne rzeczy o rewrite i .htaccess i wychodzi na to, ze powinno dzialac a nie dziala.
Wychodzi na to, ze Apache nie czyta pliku .htaccess, lub joomla cos falszuje.
W joomli mam wlaczone mod_rewrite.
Plik .htaccess mam standardowy dla joomli z dopisana Twoja regulka.
W configu Apache powinno gdzieś być o wlasnie htaccess. Czyli żeby plikiem zabezpieczeń był właśnie .htaccess. Pewnie tego nie masz.
Zerknij sobie w config Apache na movAMP-ie - może to ci trochę rozjaśni.
edit://
u mnie wygląda to tak:
AccessFileName .htaccess
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
...
W joomli mam wlaczone mod_rewrite.
Plik .htaccess mam standardowy dla joomli z dopisana Twoja regulka.
mod_rewrite nie włącza sie w Joomla ( tzn. w Joomla ustawia się czy system ma z niego korzystać)
a sam mod_rewrite to moduł PHP czy Apache-a:hmm: nie wiem nie znam się, ale któregoś z tych dwóch:)
BTW: Dziś natknąłem się na wpis naszego kolegi administratora na jego blogu (http://www.trzepizur.pl/blog/1-joomla/83-adres-z-www-czy-bez-www.html)
_______________
EDYCJA: O właśnie o tym koledze mówiłem:)
Tak - w Apache mam wczytany modul.
Czytam juz chyba 50-ta strone o .htaccess i rewrite.
Mam dokladnie takie wpisy jak ten z linku, zreszta inne propozycje tez testowalem i kiszka.
Zaczynam sadzic, ze Apache nie czyta .htaccess. Po wpisaniu przekierowania np. na onet nie dziala.
Plik ma wlasciwe prawa (rw r r) - nie ma bledu w nazwie...
Ufff.
Pokaż zawartość Twojego pliku htaccess.
A zastosowałeś się o porady @trzepiz-a
u mnie wygląda to tak:
AccessFileName .htaccess
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
Pokaż zawartość Twojego pliku htaccess.
Satndard joomli + na dole z # to moje proby
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a ********** tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits
# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root)
#RewriteBase /
########## Begin - Joomla! core SEF Section
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section
### moje ###
RewriteCond %{HTTP_HOST} ^domena.pl$ [NC]
#RewriteCond %{HTTP_HOST} ^domena.pl
RewriteRule ^(.*)$ http://www.domena.pl.pl/$1 [R=301,L]
#RewriteEngine On RewriteCond %{HTTP_HOST} ^domena.pl$ [NC]
#RewriteRule ^(.*)$ http://www.domena.pl/$1 [QSA,L,R=301]
Normalnie znowu ktoś używa truposza (Joomla 1.0).
U ciebie nie działa to z powodu dwóch eLek - flag L.
Więc to:
[E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
zmieniasz na to:
[E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
:)
Nie - joomla jest z kwietnia 2010.
a .htaccess
##
# @version $Id: htaccess.txt 14401 2010-01-26 14:10:00Z louis $
# @package Joomla
# @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
Zmienilem wpis jak radzisz ale to nic nie dalo. :(
====
Jak sprawdzic czy Apache bierze pod uwage ten plik?
A sprawdź czy działa to na mov'AMP - pobierz z zainstaluj.
Tutaj masz standardową zawartość pliku htaccess:
##
# @version $Id: htaccess.txt 14401 2010-01-26 14:10:00Z louis $
# @package Joomla
# @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##
################################################## ###
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations. It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file. If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's. If they work,
# it has been set by your server administrator and you do not need it set here.
#
################################################## ###
## Can be commented out if causes errors, see notes above.
Options +FollowSymLinks
#
# mod_rewrite in use
RewriteEngine On
########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
## Deny access to extension xml files (uncomment out to activate)
#<Files ~ "\.xml$">
#Order allow,deny
#Deny from all
#Satisfy all
#</Files>
## End of deny access to extension xml files
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a ********** tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits
# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root)
# RewriteBase /
########## Begin - Joomla! core SEF Section
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section
Tutaj masz moja propozycję rozwiązania problemu:
##
# @version $Id: htaccess.txt 14401 2010-01-26 14:10:00Z louis $
# @package Joomla
# @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##
################################################## ###
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations. It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file. If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's. If they work,
# it has been set by your server administrator and you do not need it set here.
#
################################################## ###
## Can be commented out if causes errors, see notes above.
Options +FollowSymLinks
#
# mod_rewrite in use
RewriteEngine On
########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
## Deny access to extension xml files (uncomment out to activate)
#<Files ~ "\.xml$">
#Order allow,deny
#Deny from all
#Satisfy all
#</Files>
## End of deny access to extension xml files
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a ********** tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits
# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root)
# RewriteBase /
########## Begin - Joomla! core SEF Section
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
########## End - Joomla! core SEF Section
########## Begin - add www.
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
########## End - add www.
A co to za serwer ? o co dokladniej chodzi .. Sam, konfigurujesz Apache ? to lokalny serwer czy zdalny ?
sprawdziłeś w httpd.conf to o czym pisałem ? ----> click (http://forum.joomla.pl/showthread.php?43229-Zamiana-adresu-bez-WWW...-na-adres-z-WWW&p=187789&viewfull=1#post187789)
Bo piszecie o tych zmianach w .htaccess a nikt nie wie czy Apache czyta ten plik .. !
Pod warunkiem, że na pewno to jest Apache ;)
Kawalek httpd.conf
AccessFileName .htaccess
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<IfModule mod_authz_host.c>
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
</FilesMatch>
</IfModule>
---------- Post dodany o 16:40 ---------- Poprzedni post był o 16:32 ----------
Pod warunkiem, że na pewno to jest Apache ;)
Apache na 100% :)
W sumie tez nie jestem pewien czy czyta .htaccess, ale na oko w configu serwera jest ok (choc moja wiedza jest minimalna).
---------- Post dodany o 16:47 ---------- Poprzedni post był o 16:40 ----------
Dopisalem ale nic...
########## Begin - add www.
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
########## End - add www
Troche sie pogubilem w watku, ale...
Sadze jednak, ze to wina Apache
A na mov'AMP testowałeś?
Calos o ktorej pisze znajduje sie na zdalnym zerwerze.
Mam co prawda dostep do konfiguracji Apache, ale nie chcial bym ryzykowac instalowania innego serwera WWW.
Zreszta ten serwis musi i tak pracowac na oryginalnym Apache, wiec jak widze mam jeszcze sporo pracy przed soba. :)
---------- Post dodany o 17:31 ---------- Poprzedni post był o 17:18 ----------
Reasumujac:
Apache czyta .htaccess - sprawdzilem w prosty sposob - zmienilem nazwe i serwis padl.
Tak wiec problemu musze szukac w .htaccess i/lub joomli.
Jak na razie wszystkie zmiany w .htaccess nie daly rezultatu w zamianie domena.pl na www.domena.pl.
Jezeli dobrze rozumiem to wykorzystywane jest wystapienie bledu 301 (???)
Jezeli tak to znaczylo by brak wykrywania bledow. (??)
Mieszasz, mov'AMP jest pakietem lokalhost, żebyś mógł na swoim komputerze pracować z Joomla.
I znowu mieszasz - nie ma tam żadnego wykorzystywania wystąpienia błędu.
Pisałeś do administratora/hostingodawcy?
Skąd wiesz czy nie ma jakiś "odgórnych" ustawień, które maja odpalać stronę z i bez www? W panelu konta nic takiego nie masz?
Mieszasz, mov'AMP jest pakietem lokalhost, żebyś mógł na swoim komputerze pracować z Joomla.
I znowu mieszasz - nie ma tam żadnego wykorzystywania wystąpienia błędu.
Pisałeś do administratora/hostingodawcy?
Skąd wiesz czy nie ma jakiś "odgórnych" ustawień, które maja odpalać stronę z i bez www? W panelu konta nic takiego nie masz?
Wiem, bo stawialem kiedys ten serwer wlasnorecznie (to nie hosting). Pracuje na nim 2 serwisy oparte na joomli, no i dla jednego kazano mi zrobic ten "myk" z adresem.
Do tej pory pracowal jako www.domena.pl i poprzez ServerAlias jako domena.pl ale ludzie, ktorzy maja pozycjnowac serwis chca w/w zmiany.
Więc to jest kwestia aliasów, dlatego htaccess nic nie daje.
Więc to jest kwestia aliasów, dlatego htaccess nic nie daje.
W tej chwili alias w configu Apache jest zablokowany.
Efekt jest taki, ze po wpisaniu domena.pl (bez www) laduje sie inny serwis, ktory jest pierwszy w katalogu vhosts.d Apache.
Sam .access jak pisalem dziala. Jednak wpisy redirect ni daja rezultatu.
------
<VirtualHost *:80>
DocumentRoot /var/www/html/katalog
ServerName www.domena.pl
#ServerAlias domena.pl
ErrorLog /var/log/httpd/xxx_error_log
CustomLog /var/log/httpd/xxx common
</VirtualHost>
Dlatego nie dają rady, bo alias jest "odgórnym" ustawieniem, które na to nie pozwala.
Dlatego nie dają rady, bo alias jest "odgórnym" ustawieniem, które na to nie pozwala.
Moze nieszczesliwie zacytowalem.
Przy aliasie jest # czyli nie dziala.
ServerName www.domena.pl
#ServerAlias domena.pl
Jeden wpis to nie wszystko, jest jeszcze konfiguracja serwera w kwestii aliasów.
Problem byl jednak banalny.
Zeby dzialaly regulki w .htaccess zamiany domena.pl na www.domena.pl
Musi byc w pliku conf Apache wpis ServerAlias domena.pl
Inaczej Apache przekierowuje automatycznie do pierwszego z brzegu pliku ...conf
Mala uwaga dla osob majacych klopoty z dzialaniem standardowego pliku .htaccess.
Wszystkie dodatkowe linie musza byc wpisane przed linia majaca na koncu regulki "L".
L konczy dzialanie na pliku. Ewentualnie mozna wykasowac L we wczesniejszej regulce i dodac do swojej ostatniej.
Dziekuje wszystkim. :)
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!