Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> htaccess + wildcard + dodatkowe zmienne
schizoos
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 21.11.2009

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


Witam!

Potrzebuję pomocy.

Otóż, mam dwa adresy strony przed i po formatowaniu:
http://adres-strony.pl/file.php?user=test
http://test.adres-strony.pl/

Całość działa prawidłowo po wpisaniu następującego kodu w htaccess:
  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteCond %{SCRIPT_FILENAME} -f
  4. RewriteRule .* - [L]
  5. RewriteCond %{HTTP_HOST} !(^www.adres-strony.pl)
  6. RewriteCond %{HTTP_HOST} ^(www\.)?(.*).adres-strony.pl$
  7. RewriteCond %{HTTP_HOST} !^www\. [NC]
  8. RewriteCond %{HTTP_HOST} ^([^\.]+)\. [NC]
  9. RewriteRule ^$ /file.php?user=%1 [QSA]


Do tego adresu muszę jednak dodać dodatkowe zmienne... I tu zaczyna się robić kłopot.
Chciałbym zamienić następujący adres:
http://adres-strony.pl/file.php?user=test&...page=informacje
na:
http://test.adres-strony.pl/informacje/

Próbowałem przeróżnych formuł, np.:
RewriteRule ^/([^/]*)/$ /file.php?user=%1&page=%2 [L]

jednak takie rozwiązania nie działają.

Czy mogę prosić zacne grono o pomoc? Może być to nawet pomoc odpłatna, jeśli tylko ktoś będzie w stanie temu zaradzić, sprawa jest dla mnie niesłychanie pilna.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
schizoos
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 21.11.2009

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


To nie to, nie działa - błąd 404.

Nie wiem czy da się jaśniej, ale spróbuję. Mamy kilka linijek odpowiadających za obcięcie www w adresie i zamianę http://adres-strony.pl/file.php?user=test na http://test.adres-strony.pl/. Mianowicie:
  1. RewriteCond %{SCRIPT_FILENAME} -f
  2. RewriteRule .* - [L]
  3. RewriteCond %{HTTP_HOST} !(^www.adres-strony.pl)
  4. RewriteCond %{HTTP_HOST} ^(www\.)?(.*).adres-strony.pl$
  5. RewriteCond %{HTTP_HOST} !^www\. [NC]
  6. RewriteCond %{HTTP_HOST} ^([^\.]+)\. [NC]
  7. RewriteRule ^$ /file.php?user=%1 [QSA]


Powyższe działa prawidłowo. Problem pojawia się w momencie, gdy dopisuję drugą zmienną, np. "page" i chcę zamienić:
  1. http://adres-strony.pl/file.php?user=test&page=informacje

na:
  1. http://test.adres-strony.pl/informacje/


Jeśli wpiszę sobie np. na taki link:
  1. http://test.adres-strony.pl/?page=informacje

lub
  1. http://test.adres-strony.pl/file.php?user=test&page=informacje

to całość działa prawidłowo, jednak chodzi o skrócenie tej ostatniej zmiennej do formy prostej - /informacje/.

Dlaczego nie działa? Nie mam pojęcia, stąd moje pytanie.

Dodam może jeszcze tylko, że w tym samym pliku, ale powyżej znajdują się przekierowania generowane dla Wordpressa (jest zainstalowany w tym samym katalogu, ale omijamy plik index.php i chcemy pracować na file.php):
  1. <IfModule mod_rewrite.c>
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteRule ^index\.php$ - [L]
  5. RewriteCond %{REQUEST_FILENAME} !-f
  6. RewriteCond %{REQUEST_FILENAME} !-d
  7. RewriteRule . /index.php [L]
  8. </IfModule>


Jednak czy to ma jakiś wpływ na pozostałe przekierowania? Nie sądzę, bo po usunięciu tych linijek dalej mam brak reakcji na link http://test.adres-strony.pl/informacje/
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 23:14