Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Serwery WWW _ .htaccess - przekierowanie bez slasha nie działa

Napisany przez: deha21 21.01.2018, 09:34:54

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]

Napisany przez: trueblue 21.01.2018, 10:47:14

Kod
...

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

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



Napisany przez: deha21 21.01.2018, 20:21:28

Z tym, że Twój kod przekierowuje bezpośrednio na pliki .php a jak chciałbym żeby w adresie nie było tego .php

Napisany przez: trueblue 21.01.2018, 20:38:53

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]

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)