Autor Zpráva
mhanny
Profil *
Zdravím,
potřebuji přesměrovat web bez "www" na formát s "www"... v PHP to řeším dvěmi řádky v .htaccess ale dostal se mi pod ruce web psaný v ASP a to už je trochu mimo mé znalosti, nějaké pokusy jsem již zkoušel, ale nedařilo se. Věřím, že to bude brnkačka jako v PHP. Uměl by mi někdo poradit jak to udělam v ASP?
joe
Profil
Stačí hledat (hned první odkaz).
mhanny
Profil *
joe:
hledat nestačí =) musel bych se umět vyhledavače dobře zeptat v tom bude problém =)
Každopádně kód z prvního odkazu se týká ASP.NET a já to potřebuji na web, který je jen v ASP.. nešlape to.

Nicméně na devátém odkazu ve hloubce asi tří kliků jsem narazil na tohle... jenže mi to hází chybu 500 (zápis do web.config):

<system.webServer>
   <rewrite>
    <rules>
     <rule name="Redirect to WWW" stopProcessing="true">
      <match url=".*" />
      <conditions>
       <add input="{HTTP_HOST}" pattern="^domena.cz$" />
      </conditions>
      <action type="Redirect" url="http://www.domena.cz/{R:0}" redirectType="Permanent" />
     </rule>
    </rules>
   </rewrite>
  </system.webServer> 
joe
Profil
mhanny:
Aha, myslel jsem, že myslíš ASP .NET, ono když se dneska řekne ASP, už myslím .NET :-) Tuhle technologii neovládám, takže nevím...
__construct
Profil
To čo potrebuješ je modul do IIS (keďže MS IIS štadardne nepodporuje Apache mod_rewrite). Na servery používam toto Ale pokiaľ nemáš možnosť zasahovať do inštalácie bude to trošku zložitejšie
mhanny
Profil *
__construct:
jediné kam mám přístup jsou soubory webu přes FTP...
V současnosti web již podporuje seo friendly url... jediné co web neumí je přesměrování adresy bez "www" na formát s "www"... vzhledem k tomu, že pěkné adresy na něm fungují tak si myslím, že tohle už by měla být prkotina =)
Jsem PHPčkář a v tomhle jsem celej ztracenej. Něco mi pořád říká, že zápis se bude provádět do web.config

Takhle mi to taky nešlape..
<system.webServer>
	<rewrite>
   <rules>
    <rule name="www">
     <match url="%{HTTP_HOST} ^domena\.cz" />
     <action type="Rewrite" url="http://www.domena.cz/{R:1}" appendQueryString="false" />
    </rule>
   </rules>
  </rewrite>
 </system.webServer>
__construct
Profil
Našiel som toto:
If InStr(LCase(Request.ServerVariables("SERVER_NAME")),"www") = 0 Then
    Response.Status="301 Moved Permanently"
    Response.AddHeader "Location", "http://www.domena.cz"
End If

Treba to doplniť do default.asp (alebo index.asp - neviem čo používaš)
mhanny
Profil *
Už budem na správné cestě =)

__construct:
To by šlapalo, ale potřebuji to rozšířit... peru se tu s tím už hodinu a půl =(
Problém je v tom, že ten kód přesměruje web vždy když nebude začínat "www" na adresu "http://www.domena.cz"
To je dobré jen na úvodní stránku, ale potřebuji aby to pracovalo dynamicky, hodím to do hlavičky a pofachčí to na celém webu ;)
Po mé úpravě to vypadá takto:
If InStr(LCase(Request.ServerVariables("SERVER_NAME")),"www.") = 10 Then
  adresa = "www." & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("HTTP_X_ORIGINAL_URL")
  Response.Status="301 Moved Permanently"
  Response.AddHeader "Location", adresa
  Response.end
End If


Proměnná adresa mi poskládá adresu s tím, že na začátek přidá "www"
Bohužel nějak neposlouchá příkaz Response.AddHeader, který mě přesměruje na "www.domena.czwww.domena.czwww.domena.czwww.domena.czwww.domena.cz..." nevím kde dochází k tomu cyklení :(
mhanny
Profil *
opravuji chybu v kodu první řádek
If InStr(LCase(Request.ServerVariables("SERVER_NAME")),"www.") = 0 Then

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0