Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mod_rewrite] Blokowanie "...index.php" w adresie URL
Forum PHP.pl > Forum > PHP
Sajrox
Witam.

Mam pewien problem ze stroną. Korzystam z przyjaznych linków. I chciałbym aby blokwoało mi stronę gdy uzytkownik wpisze w adresie np. www.mojastrona.pl/index.php
W tym wypadku chce wyswietlic stronę błędu 404.

Konwersja linków wygląda następująca.
www.mojastrona.pl/model,akcja
zamienia na
www.mojastrona.pl/index.php?module=index&action=_default


Chce uzyskac efekt by działały tylko linki w postaci:
www.mojastrona.pl/model,akcja



Plik mod_rewrite:

  1. <?php
  2. Options +FollowSymLinks
  3. Options -Indexes
  4. DirectoryIndex index.php
  5. RewriteEngine On
  6.  
  7.  
  8. ### Zablokowanie wszystkich plików oprócz index.php
  9. ### =================================================
  10.    
  11.      Order allow,deny
  12.      Deny from all
  13.    
  14.    
  15.      Order allow,deny
  16.      Allow from all
  17.        
  18.    
  19.      Order allow,deny
  20.      Allow from all
  21.            
  22.    
  23.      Order allow,deny
  24.      Allow from all
  25.            
  26.  
  27.  
  28. ### INNE
  29. ### =================================================
  30.    RewriteRule ^index.html$ index,_default [NC]
  31.  
  32.    
  33. ### Linki strony klienta
  34. ### =================================================
  35.    RewriteRule index.html index.php?module=index&action=_default [L,NC]
  36.    RewriteRule ^$ index.php?module=index&action=_default [L,NC]
  37.    RewriteRule ^([a-z+_]+)([,]?)$  index.php?module=$1&action=_default [L,NC]
  38.    RewriteRule ^([a-z+_]+),([a-z_0-9]+)([;]?)([A-zZ-a0-9&=, !+{}&#092;'_]{0,}) index.php?module=$1&action=$2&$4 [L,NC]
  39. ?>
fander
Kod
rewriteRule index.php 404.htm
Sajrox
hehe smile.gif No właśnie to by było zaproste. To mi blokuje całą stronę www która przechodzi przez index.php
fander
w pliku index php

Kod
if(strcmp($_SERVER['REQUEST_URI'],'index.php')==0) header('Lovation: 404.html');
Sajrox
Zrobiłem trochę inaczej:

Wszystko przekierowuję do index.php w taki sposób:

  1. <?php
  2. RewriteCond %{REQUEST_FILENAME} !(.css|.gif|.jpg|.png|.js|.html|.ttf|.htm)$
  3.    RewriteRule ^(.*)$ index.php?noparam=  [L,NC]
  4. ?>


zmienna noparam służy do tego aby nie mozna było przekazywać żadnych zmiennych $_GET. ZSmienne GET tworze i wyciągam na własny sposób z linka
www.mojastrona.pl/modul,akcja;zmienna_get=1&zmienna_get=2 itd...

Modul, akcje oraz zmienne GET sobie już pobieram ze zmiennej:
  1. <?php
  2. $_SERVER['REDIRECT_URL']
  3. ?>


Teraz wszystko co wchodzi mogę kontrolować smile.gif
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.