Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: .htaccess - przekierowanie bez slasha nie działa
Forum PHP.pl > Forum > Serwery WWW
deha21
Jak zwykle mam problem z .htaccess. Chcę zrobić standardowe przekierowanie z /projects na projects.php i /freebies na freebies.php. Problem jest taki, że gdy wpiszę /projects/ (ze slashem na końcu) to nie działa, gdy wpiszę bez to działa. Natomiast w przypadku /freebies/ (ze slashem) podstrona działa, a bez slasha nie działa... Taki mam kod:
  1. RewriteCond %{HTTPS} !=on
  2. RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
  3. RewriteCond %{HTTP_HOST} ^www.mojastrona.pl [NC]
  4. RewriteRule ^(.*)$ <a href="https://mojastrona.pl/$1" target="_blank">https://mojastrona.pl/$1</a> [L,R]
  5.  
  6. RewriteRule ^projects$ /projects.php [NC]
  7. RewriteRule ^freebies$ /freebies.php [NC]
trueblue
Kod
...

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

RewriteCond %{REQUEST_URI} ^/(projects|freebies)/$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/%1.php [NC,L]


deha21
Z tym, że Twój kod przekierowuje bezpośrednio na pliki .php a jak chciałbym żeby w adresie nie było tego .php
trueblue
Czyli nie chcesz zrobić przekierowania, ale przepisanie.

Kod
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

RewriteCond %{REQUEST_URI} ^/(projects|freebies)/$
RewriteRule ^(.*)$ /%1.php [NC,L]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.