Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] Konstrukcja .htaccess
gazelek
post
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 3
Dołączył: 28.02.2008

Ostrzeżenie: (0%)
-----


Kod
RewriteEngine on
RewriteBase /
RewriteRule !\.(js|ico|gif|jpg|png|css|xml)$ index.php


Witam!
Powyzej kod pliku .htaccess z katalogu public_html. Wszystko dziala poprawnie. Pojawia sie jednak temat: uzywanie subdomen. Kazda subdomena ma swoj osobny katalog w public_html. I teraz - jak zrobic, co dopisac do pliku .htaccess, zeby dla domeny http://example.com obslugiwane byly adresy http://sklep.example.com, a takze http://example.com/sklep? .htaccess bede edytowal recznie, wiec nie musi byc zadnego dodawania z automatu tych subdomen do .htaccess.

Edit: moze troszke jasniej. Potrzebuje ulozyc taka regule, ponizej slowny opis:

Jesli rozszerzenie jest rozne od js,ico,gif,jpg,png,scc lub xml (tutaj pierwsza czesc wyglada tak: !\.(js|ico|gif|jpg|png|css|xml)$), ORAZ w nazwie nie ma wyrazen subdomena1,subdomena2 to przekieruj do pliku index.php

I takie wyrazenie powinno obslugiwac adresy subdomena1.example.com, subdomena2.example.com, a takze strone example.com (odpalona na ZF)

Ten post edytował gazelek 9.02.2009, 23:59:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
luki100011
post
Post #2





Grupa: Zarejestrowani
Postów: 243
Pomógł: 20
Dołączył: 20.04.2004
Skąd: Wielkopolska

Ostrzeżenie: (0%)
-----


Spróbuj w katalogu sklep dodać plik htacess z taką gtreścią

Kod
RewriteEngine off
Go to the top of the page
+Quote Post
likemandrake
post
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 17
Dołączył: 23.06.2006

Ostrzeżenie: (0%)
-----


Kod
[...]
RewriteCond %{HTTP_HOST} !sub1\.domena\.pl$
RewriteCond %{HTTP_HOST} !sub2\.domena\.pl$
RewriteRule [...]


Wywal dyrektywę RewriteBase, gdyż zmniejsza szybkość odpowiedzi serwera na żądanie, a nie widzę, żeby Ci była potrzebna.

Po za tym przykład @luki100011 nie wiem czy jest wydajniejszy czy nie wydajniejszy, w każdym razie widzę dwie zasadnicze wady tego rozwiązania:

o Apache musi przetwarzać dodatkowe pliki .htaccess, a stosowanie plików .htaccess znacznie obniża wydajność serwera, niezależnie od ich zawartości. Efekt ten wzmacnia się gdy używamy mod_rewrite.

o Masz porozrzucane pliki .htaccess po różnych katalogach, czyli każdym musisz zarządzać osobno, a im jest ich więcej, tym trudniej jest nimi zarządzać.
Go to the top of the page
+Quote Post
Czadus
post
Post #4





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

Ostrzeżenie: (0%)
-----


A to może ja ze swoim problemem dołączę się:

Kod
RewriteEngine On

RewriteCond %{HTTP_HOST} ^(.*).axte.promatek.pl
RewriteCond %{REQUEST_URI} ^/include [OR]
RewriteCond %{REQUEST_URI} ^/otherFiles [OR]
RewriteCond %{REQUEST_URI} ^/usersFiles [OR]
RewriteRule (.*) http://axte.promatek.pl/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^(.*).axte.promatek.pl
RewriteRule .* /?stronafirmowa=%1&page=axsxsxfd

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(lang)/([a-z]+)/?$ index.php?page=$1&z1=$2 [L]

RewriteRule ^([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9.]+)/([a-zA-Z-_0-9]+)/([0-9]+-[0-9]+)/([a-zA-Z-_0-9]+)/?$ index.php?page=$1&z1=$2&z2=$3&powr=$4&$5=1&$6 [L]
RewriteRule ^([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9.]+)/([a-zA-Z-_0-9]+)/([0-9]+-[0-9]+)/?$ index.php?page=$1&z1=$2&z2=$3&powr=$4 [L]
RewriteRule ^(dodaj)/([a-zA-Z-_0-9.]+)/([a-zA-Z-_0-9]+)/([a-zA-Z0-9-.]+)/?$ index.php?page=$1&z1=$2&z2=$3&usunFoto=$4 [L]
RewriteRule ^(dodaj)/([a-zA-Z-_0-9.]+)/([a-zA-Z-_0-9]+)/?$ index.php?page=$1&z1=$2&z2=$3 [L]

RewriteCond %{REQUEST_URI} !.gif$ [NC]
RewriteCond %{REQUEST_URI} !.jpg$ [NC]
RewriteCond %{REQUEST_URI} !.jpeg$ [NC]
RewriteCond %{REQUEST_URI} !.png$ [NC]
RewriteRule ^([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9\_]+[0-9][.]*[0-9]*[a-zA-Z-_0-9\_]*)/?$ index.php?page=$1&z1=$2&z2=$3 [L]
RewriteRule ^([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9]+)/?$ index.php?page=$1&z1=$2 [L]
#RewriteRule ^([a-zA-Z-_0-9]+)/$ /index.php?page=$1&$2 [L]
RewriteRule ^([a-zA-Z-_0-9]+)/?$ /index.php?page=$1 [L]


Powyższa definicja pliku htaccess umożliwia nie tylko wykorzystywanie przyjaznych adresów url, ale również subdomen.

Pytanie moje brzmi, dlaczego działają adresy typu:
http://domena.pl/zmienna/
http://firma.domena.pl/

natomiast nie działają poprawnie adresy typu
http://www.domena.pl/zmienna/
http://www.firma.domena.pl/

Co trzeba zmienić, aby każdy rodzaj adresu działał poprawnie??
Go to the top of the page
+Quote Post
likemandrake
post
Post #5





Grupa: Zarejestrowani
Postów: 175
Pomógł: 17
Dołączył: 23.06.2006

Ostrzeżenie: (0%)
-----


Tak na wstępie, to wszędzie masz mały błąd... Jeżeli chcesz żeby kropka była traktowana jak kropka a nie dowolny znak, musisz poprzedzić ją znakiem ucieczki, czyli: \.

A jeżeli chcesz zrobić poddomeny, to szturchnij coś takiego:

Kod
RewriteCond %{HTTP_HOST} ([^.]+)\.domena\.pl$
RewriteCond \1 !^www$
RewriteRule ...


Tak mniej więcej działałoby wybieranie nazw domenowych, ale musisz już zweryfikować, czy zadziała to na każdym przypadku użycia.

Pozdrawiam

Dobra, troszkę inaczej niż chciałeś, poprawka do Twojego pytania:

Kod
RewriteCond %{HTTP_HOST} (?:([^.]+)\.)?domena\.pl$
RewriteRule ...


Ten post edytował likemandrake 22.02.2009, 17:03:34
Go to the top of the page
+Quote Post
Czadus
post
Post #6





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

Ostrzeżenie: (0%)
-----


Na razie dziękuję, jak tylko sprawdzę, dam znać, czy zadziałało, pozdrawiam :]
Go to the top of the page
+Quote Post
PanGuzol
post
Post #7





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

Ostrzeżenie: (0%)
-----


A może bez kombinowania z .htaccess

  1. /* controllers/SubdomenaController.php */
  2.  
  3. <?php
  4. class SubdomenaController extends Zend_Controller_Action
  5. {
  6.    public function indexAction()
  7.    {
  8.        $this->_redirect('http://subdomena.domena.com');
  9.    }
  10. }
  11. ?>
Go to the top of the page
+Quote Post
likemandrake
post
Post #8





Grupa: Zarejestrowani
Postów: 175
Pomógł: 17
Dołączył: 23.06.2006

Ostrzeżenie: (0%)
-----


Takie małe ostrzeżenie.

Jeżeli zajmujecie się budową serwisów na poważnie i nie są to serwisy małej skali, liczbę przekierowań w takich serwisach trzeba zmniejszyć do niezbędnego minimum (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Im więcej tych przekierowań, tym po prostu gorzej, a wiemy doskonale, że takie przekierowania są łatwiejszym sposobem rozwiązania danego problemu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam
Go to the top of the page
+Quote Post
Czadus
post
Post #9





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

Ostrzeżenie: (0%)
-----


Cytat(likemandrake @ 22.02.2009, 17:00:45 ) *
RewriteCond %{HTTP_HOST} (? (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) [^.]+)\.)?domena\.pl$
RewriteRule ...


Niestety coś mi nie działa. Dla mojej strony, plik htaccess zmieniłem na następujący:

Kod
RewriteEngine On
  
  RewriteCond %{HTTP_HOST} (?:([^.]+)\.)?axte\.promatek\.pl$
  RewriteCond %{REQUEST_URI} ^/include [OR]
  RewriteCond %{REQUEST_URI} ^/otherFiles [OR]
  RewriteCond %{REQUEST_URI} ^/usersFiles [OR]
  RewriteRule (.*) http://axte.promatek.pl/$1 [R=301,L]
  
  RewriteCond %{HTTP_HOST} (?:([^.]+)\.)?axte\.promatek\.pl$
  RewriteRule .* /?stronafirmowa=%1&page=axsxsxfd
  
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  
  #dla zmiany jezyka
  RewriteRule ^(lang)/([a-z]+)/?$ index.php?page=$1&z1=$2 [L]
  
  RewriteRule ^([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9.]+)/([a-zA-Z-_0-9]+)/([0-9]+-[0-9]+)/([a-zA-Z-_0-9]+)/?$ index.php?page=$1&z1=$2&z2=$3&powr=$4&$5=1&$6 [L]
  RewriteRule ^([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9.]+)/([a-zA-Z-_0-9]+)/([0-9]+-[0-9]+)/?$ index.php?page=$1&z1=$2&z2=$3&powr=$4 [L]
  RewriteRule ^(dodaj)/([a-zA-Z-_0-9.]+)/([a-zA-Z-_0-9]+)/([a-zA-Z0-9-.]+)/?$ index.php?page=$1&z1=$2&z2=$3&usunFoto=$4 [L]
  RewriteRule ^(dodaj)/([a-zA-Z-_0-9.]+)/([a-zA-Z-_0-9]+)/?$ index.php?page=$1&z1=$2&z2=$3 [L]
  
  #bez ponizszej linijki nie dziala styl przy logowaniu do panelu admina
  RewriteCond %{REQUEST_URI} !.gif$ [NC]
  RewriteCond %{REQUEST_URI} !.jpg$ [NC]
  RewriteCond %{REQUEST_URI} !.jpeg$ [NC]
  RewriteCond %{REQUEST_URI} !.png$ [NC]
  RewriteRule ^([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9\_]+[0-9][.]*[0-9]*[a-zA-Z-_0-9\_]*)/?$ index.php?page=$1&z1=$2&z2=$3 [L]
  RewriteRule ^([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9]+)/?$ index.php?page=$1&z1=$2 [L]
  #RewriteRule ^([a-zA-Z-_0-9]+)/$ /index.php?page=$1&$2 [L]
  RewriteRule ^([a-zA-Z-_0-9]+)/?$ /index.php?page=$1 [L]


A efekty można zobaczyć pod adresem
http://axte.promatek.pl/
http://a.axte.promatek.pl/
http://www.axte.promatek.pl/
http://www.a.axte.promatek.pl/

Co w takim razie robię nietak?

Ten post edytował Czadus 26.02.2009, 06:33:29
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 23:22