PDA

Zobacz pełną wersję : Zamiana adresu bez WWW... na adres z WWW



BogdanH
25-08-2010, 14:39
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?

KejeN
25-08-2010, 16:20
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.

BogdanH
26-08-2010, 09:48
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>

KejeN
26-08-2010, 12:11
...
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:)

BogdanH
26-08-2010, 12:49
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.

trzepiz
26-08-2010, 13:00
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>

KejeN
26-08-2010, 13:04
...
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:)

BogdanH
26-08-2010, 13:55
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.

moje
26-08-2010, 14:04
Pokaż zawartość Twojego pliku htaccess.

KejeN
26-08-2010, 14:15
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>

BogdanH
26-08-2010, 14:47
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]

moje
26-08-2010, 15:17
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}]

BogdanH
26-08-2010, 15:35
:)
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?

moje
26-08-2010, 16:16
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.

trzepiz
26-08-2010, 16:25
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 .. !

moje
26-08-2010, 16:28
Pod warunkiem, że na pewno to jest Apache ;)

BogdanH
26-08-2010, 16:47
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

moje
26-08-2010, 17:08
A na mov'AMP testowałeś?

BogdanH
26-08-2010, 17:31
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. (??)

moje
26-08-2010, 17:37
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?

BogdanH
26-08-2010, 17:48
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.

moje
26-08-2010, 18:10
Więc to jest kwestia aliasów, dlatego htaccess nic nie daje.

BogdanH
26-08-2010, 18:26
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>

moje
26-08-2010, 18:57
Dlatego nie dają rady, bo alias jest "odgórnym" ustawieniem, które na to nie pozwala.

BogdanH
26-08-2010, 19:24
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

moje
26-08-2010, 20:12
Jeden wpis to nie wszystko, jest jeszcze konfiguracja serwera w kwestii aliasów.

BogdanH
26-08-2010, 22:15
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. :)