WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Hur gör jag apache rewrite för att... (https://www.wn.se/forum/showthread.php?t=10546)

chrizz 2005-10-25 19:57

Jag vill att alla som gå in på någon adress som av händelse börjar med http://domän.com ska direkt skrivas om till http://www.domän.com

Det innebär att även http://domän.com/asdf/osv/qwerty.html ska gå till http://www.domän.com/asdf/osv/qwerty.html och inte bara som exemplet ovan.

Vi kan börja med följande i .htaccess:

RewriteEngine ON

...sen är jag lost. please help :)

DeSoto 2005-10-25 22:12

Det kan du göra utan htaccess, med ren php.

$url = $_SERVER["SERVER_NAME"];
if($url == 'dinsida.com')
{
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: http://www.dinsida.com'.$_SERVER['REQUEST_URI']);
}

chrizz 2005-10-25 22:46

Citat:

Originally posted by DeSoto@Oct 25 2005, 22:12
Det kan du göra utan htaccess, med ren php.

$url = $_SERVER["SERVER_NAME"];
if($url == 'dinsida.com')
{
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: );]http://www.dinsida.com'.$_SERVER[...EST_URI']);
}

Jodå, klart det går, men det känns bättre med mod_rewrite.

Bladet 2005-10-25 23:46

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

borde nog fungera

chrizz 2005-10-26 01:08

Citat:

Originally posted by Bladet@Oct 25 2005, 23:46
RewriteEngine On
RewriteCond %{HTTP_HOST} ^doman\.com$ [NC]
RewriteRule ^(.*)$ http://www.doman.com$1 [R=301,L]

borde nog fungera

Jag har varit inne på det där, men vad det gör är att skicka till http://www.doman.com oavsett om man var inne på en annan del av sidan. Uhm, alltså:

Ditt exempel:
http://doman.com/asdf -> http://www.doman.com

Jag är ute efter:
http://doman.com/asdf -> http://www.doman.com/asdf

Mvh.

Edit:

Nej, nu är det ännu konstigare än som jag beskrev ovan.

Med bakgrund att min www-root är /var/www så blir det så här med förslaget:

http://doman.com/temp -> http://www.doman.com/var/www/temp
http://doman.com/temp/ -> http://www.doman.com/

Bladet 2005-10-26 14:29

Det fungerade fint när jag testade lite med apache2, doman.com/test blev www.doman.com/test automagiskt.

Filip 2005-10-26 16:34

Citat:

Originally posted by Bladet@Oct 25 2005, 23:46
RewriteEngine On
RewriteCond %{HTTP_HOST} ^doman.com [NC]
RewriteRule ^(.*) http://www.doman.com1 [R=301,L]
borde nog fungera

Jag har använt exakt den metoden ett bra tag, utan några problem... trodde jag...
jämför:
http://dll-files.com/support/
http://dll-files.com/dllindex/dll-files.sh...shtml?msclock32
Konstigt?

tobbi71 2005-10-26 21:41

KAnske jag är ute o cyklar..

men om man ska få en sträng

http//någonting.se/something.php -> http://www.någonting.se/somethin.php

e de väl bara göra:

$sIntxt="http://grodan.boll/vsKermit.php"; //inputsträng

if( $sIntxt not equal "www") //ifsats för att kolla om sIntxt inte innehåller www
{
$ser="http://";
$res=str_replace($ser,"http://www.",$sIntxt);
}

//ger väl $res="http://www.grodan.boll/vskermit.php" ... eller?

Gör bättre ifsats kommer inte på kommandon..

chrizz 2005-10-27 01:59

Som sagt, jag vill inte göra det i PHP.

Thomas 2005-10-27 02:20

OT kanske men titeln sa apache, om man har tillgång till vhostfilerna är kanske nedanstående att föredra.


<VirtualHost 111.222.222.111>
ServerName domän.tld
Redirect / http://www.domän.tld
</VirtualHost>

<VirtualHost 111.222.222.111>
ServerName www.domän.tld
ServerAlias www.domän.tld
DocumentRoot /home/domän/public_html
<Directory /home/domän/public_html>
Allow from all
AllowOverride All
Order allow,deny
</Directory>
</VirtualHost>


Den redirectar ju inte undersidor iofs men gör man det från början blir det ju inte problem.

chrizz 2005-10-27 04:20

Det som bladet föreslog fungerar. Första gången testade jag dock i en domain.com/temp och där strulade det. I rooten fungerar det utmärkt.

Så här ser det ut nu alltså, och det fungerar utmärkt i en .htacces i www-root.
Kod:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.org$ [NC]
RewriteRule ^(.*)$ [URL=http://www.domain.org/$1]http://www.domain.org/$1[/URL] [R=301,L]

Tack för hjälpen.

Mvh.

zoran 2005-10-27 09:47

Citat:

Originally posted by Thomas@Oct 27 2005, 02:20
OT kanske men titeln sa apache, om man har tillgång till vhostfilerna är kanske nedanstående att föredra.


<VirtualHost 111.222.222.111>
ServerName domän.tld
Redirect / http://www.domän.tld
</VirtualHost>

<VirtualHost 111.222.222.111>
ServerName www.domän.tld
ServerAlias www.domän.tld
DocumentRoot /home/domän/public_html
<Directory /home/domän/public_html>
Allow from all
AllowOverride All
Order allow,deny
</Directory>
</VirtualHost>


Den redirectar ju inte undersidor iofs men gör man det från början blir det ju inte problem.

Det där ser skumt ut. Är inte ett bättre alternativ så här:

Kod:

  <VirtualHost 111.222.222.111>
    ServerName www.domän.tld
    ServerAlias domän.tld
    DocumentRoot /home/domän/public_html
    <Directory /home/domän/public_html>
        Allow from all
        AllowOverride All
        Order allow,deny
    </Directory>
 </VirtualHost>


Thomas 2005-10-27 13:20

Citat:

Originally posted by zoran@Oct 27 2005, 09:47
Det där ser skumt ut. Är inte ett bättre alternativ så här:
Vad jag kan se förflyttas man inte från domän.tld till www.domän.tld om nån skulle råka skriva in utan www. i ditt exempel.


Alla tider är GMT +2. Klockan är nu 08:30.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson