Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]Czy da się sprawdzić czy strona istnieje w htaccess
Forum PHP.pl > Forum > Przedszkole
maviozo
Witam.
Sytuacja jest następująca. Nastąpiły przenosiny pewnego forum z adresu:
glowna.pl/
na
glowna.pl/forum/
Ponadto glowna.pl/ zawiera teraz inny, funkcjonalny cms.

Co oznacza, że wcześniej np. linkiem do tematu było:
(a) glowna.pl/temat2123.html
a teraz, trzeba wpisać:
(B) glowna.pl/forum/temat2123.html

Oczywiście w bazie danych zostały stare linki, które teraz nie działają. Zapewne byłoby lepiej hurtowo je po prostu zaktualizować, ale przyjmijmy, że nie da się tego zrobić w ten sposób. Pomyślałem więc, że może da się poprzez htaccess sprawdzić, czy jeżeli po wpisaniu (a) strona nie istnieje, zanim jeszcze będzie wyświetlony 404, spróbować wyświetlić stronę pod adresem (B) (czyli dodać /forum/ do url) i dopiero po braku odpowiedzi na tym adresie, zwrócić 404?
muniekw
  1. <IfModule mod_rewrite.c>
  2. Options +FollowSymlinks
  3. RewriteEngine On
  4. </IfModule>
  5.  
  6. <IfModule mod_rewrite.c>
  7. RewriteCond %{REQUEST_URI} ^/.*
  8. RewriteRule ^(.*)$ forum/$1 [L]
  9.  
  10. RewriteCond %{REQUEST_URI} !^/forum/
  11. RewriteCond %{REQUEST_FILENAME} !-f [OR]
  12. RewriteCond %{REQUEST_FILENAME} !-d
  13. RewriteRule ^.*$ forum/index.php
  14. </IfModule>
Xelah
Jedzne, co możesz zrobić to próbować wyłapać linki to forum w htaccess i przekierować do /forum (301). Problem polega na tym, że htaccess jest odpalany przed CMS-em a to znaczy, że nie wie, czy dany link zwraca 404 czy nie.
Nie jest to może idealne rozwiązanie, ale może się nadać do czasu, aż zaktualizujesz linki bezpośrednio w bazie.
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-2025 Invision Power Services, Inc.