Witajcie,
próbuję przygotować link w stylu localhost/page/news/1 - przepisuje go na localhost/page/news?id=1 - bez php gdyż końcówki .php również w htaccessie obcinam. To dzieała jednakże mam zduplikowaną zawartość zarówno na pierwszym jak i drugim linku, w jaki sposób przekierować ruch przy wejściu na drugi link (z ?id=1), na pierwszy przyjazny?

Mam taki kod (usuwa także końcowy slash):

  1. Options +FollowSymLinks -MultiViews
  2. # Turn mod_rewrite on
  3. RewriteEngine On
  4. RewriteBase /page
  5.  
  6.  
  7. # If not a directory, remove the trailing slash
  8. RewriteCond %{REQUEST_FILENAME} !-d
  9. RewriteRule ^([^/]+)/$ $1 [R=301,L]
  10.  
  11.  
  12. # Redirect external .php requests to an extensionless url
  13. RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
  14. RewriteRule ^(.+)\.php$ $1 [R=301,L]
  15.  
  16. # Resolve extensionless php url, to the php file
  17. RewriteRule ^([^/.]+)$ $1.php [L]
  18.  
  19. RewriteCond %{THE_REQUEST} \s/news\.php\?id=([0-9]+)\s [NC]
  20. RewriteRule ^ news/%1 [R=301,L]
  21. RewriteRule ^news/([0-9]+)/?$ news.php?id=$1 [L]

Ktoś ma jakiś pomysł co robię źle?