Mod Rewrite помощ

breakforce

Registered
Това ми е кода на .htaccess
Код:
<IfModule mod_rewrite.c>
Options +FollowSymLinks -Indexes -MultiViews
AddDefaultCharset windows-1251
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+) /index.php [L]
</IfModule>
защо когато напиша в адресната лента http://localhost/index е ок, но когато напиша http://localhost/login излиза страницата на индех файла демек в адресната лента се променя съдържанието, но само там, как мога да го направя за всички страници да се показва самото си съдържание с променения линк ?
 
Това, което искаш да направиш се прави с диспечер. Т.е. индекса ти може да бъде този диспечер.

В индекса взимаш с гет рекуеста. Проверяваш дали съществува такъв файл, като проверяваш по следния начин, и викаш чрез require_once(); :

PHP:
$url = $_GET['url'];
if(file_exists($url . ".php")){
         require_once $url . ".php";
}

А rewrite-а трябва да изглежда по този начин:

PHP:
Options +FollowSymLinks -Indexes -MultiViews
RewriteEngine On

RewriteRule ^([^/]+)/?$ index.php?url=$1 [QSA,L]

Това е накратко обяснено, хубаво е да се правят и други проверки, но не ми се занимава да ти обяснявам всичко и да ти показвам код за всичко.
 

Back
Горе