ugrás a tartalomhoz

Rövid webcím probléma - htaccess beállítás HTTPS átirányítással

a.d.a.m · 2007. Júl. 1. (V), 10.22
Sziasztok!

Bármennyire is nézegettem a forumot és levlistát, nem leltem gyógyírt a problémámra, ezért szeretném a segítségeteket kérni a megoldásában.

Adott egy oldal, amit HTTPS alatt szeretnék elérni, ha esetleg a látogató a http://www.énoldalam.hu címről érkezne, akkor őt egy .htaccess állománnyal átirányítom. Nos idáig sikerült is megvalósítanom a dolgot, a következő kóddal:
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteOptions MaxRedirects=2

  RewriteBase /

  RewriteCond %{HTTP_REFERER} !^https://www\.énoldalam\.hu(/)?.*$ [NC]
  RewriteRule ^(.*)$ https://www.énoldalam.hu%{REQUEST_URI} [L,R=301]

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?q=$1 [QSA]
</IfModule>
DE...

ahogy a kódban is látszik, szeretnék emellett rövid webcímeket is használni, azonban hiába állítom be a .htaccessben a (Weblabor cikkből ellesett) kódot, nem működik a dolog, a rövid webcímekkel, pl.: https://www.énoldalam.hu/cikkek/11 helyett csak ilyen formában: https://www.énoldalam.hu/?q=cikkek/11 hajlandó megjeleníteni a kérdéses cikket.

Próbáltam megkeresni a hiba okát - de nem jutottam semmire, mert külön-külön a két átírás hibátlanul működik - úgy tűnik ehhez kevés vagyok, kérlek segítsetek!

a.d.a.m
 
1

referer?

bandi · 2007. Júl. 1. (V), 11.19
Talán az lehet a hiba, hogy ha kézzel gépeled be a címet, akkor nincs referer, de ha kattintós linkkel sem megy, akkor próbáld meg kivenni az "L" direktívát az első rewrite-ból (hiszen pont akkor állítod le, amikor már átírta https-re és rövid címre, de még nem oldottad fel a rövid címet). Egyébként sem érdemes referer header-t használni, mert nem megbízható, és gyakran nem küldi akkor sem, ha linkre kattintással érkezik a júzer, le lehet tiltani a böngészőben.
2

ha nincs ló :(

a.d.a.m · 2007. Júl. 1. (V), 11.46
Kipróbáltam, sajnos nem segít, ha kiveszem azt L-t mert akkor 301-es hibával dob vissza. A referer problémájáról tudok, de sajnos még nem találtam megfelelő csere megoldást. Ha esetleg lenne más mód, a cím kinyerésére, örömmel venném.
3

%{HTTPS}

gex · 2007. Júl. 1. (V), 11.51
ha jól értem, te azt szeretnéd elérni, hogy csak https-en keresztül menjen minden, azaz ha valaki http-t használ át akarod irányítani https-re. ehhez neked egyáltalán nem szükséges azt tudni, hogy honnan jött, elég ha mindig az adott kéréssel foglalkozol, ebben segíthet a %{HTTPS} ld. korábbi fórumtéma.
5

nem a HTTPS a gond

a.d.a.m · 2007. Júl. 2. (H), 08.33
a gondot eddig sem a HTTPS okozta, hanem a rövid webcímeket átíró rész. Most így néz ki a változtatások után:

RewriteEngine on
RewriteOptions MaxRedirects=2

RewriteBase /

RewriteCond ^(.*)$ !^https://www\.énoldalam\.hu(/)?.*$ [NC]
RewriteRule ^(.*)$ https://www.énoldalam.hu%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTPS} ^on$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]

Sajnos a rövid webcímekre még mindig 404-es hiba jön vissza.
6

rewritelog

gex · 2007. Júl. 2. (H), 10.14
állítsd be a logolást a RewriteLog direktívával, és nézd meg mi történik, hol bukik el az url átírása.

ez nem fog menni .htaccess fájlból, szóval ha nincs jogosultságod, kérd meg a rendszergazdát, hogy állítsa be neked.
4

szerver konfig

bandi · 2007. Júl. 1. (V), 12.56
Kár hogy nem ment. Én mondjuk szerver konfigban szoktam csinálni, és a nem secure virtual host definícióban egyszerűen átdobom egy másik weboldalra egy redirect-tel, míg a secure virtual host részben engedélyezem a rewrite-ot, és a htaccess-ban bütykölöm. Persze ehhez kell szerver konfig hozzáférés...
7

más úton...

a.d.a.m · 2007. Júl. 12. (Cs), 08.30
Letettem az azonnali átíránytásról, gondoltam, ha a bejelentkezés menüpontra kattintáskor váltok titkosított kapcsolatra az is jó lesz, de nem.

Lehet hogy férreértettem valamit a rövidwebcímes cikkben és ez a megoldás nem működik HTTPS kapcsolatnál, csak ha ténylegesen GET-tel adom át az adatokat?