Автор Тема: проблема с mod_rewrite  (Прочитано 3207 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Jean

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 113
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с mod_rewrite
« : 30 Июля 2004, 12:33:11 »
помогите пожалуйста разобраться.

допустим я хочу все что не явл файлом или директорией перенаправлять на index.php то тогда я напишу

такое правило в .htaccess :

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /index.php [L]

например,  у меня такая структура папок в корневой директории сервера

/index.php
/folder/test.html
/site/main.html
/site/logo.gif

если я в браузере напишу hostname/fgsdfsdfs
то .htaccess перенаправит меня на /index.php

если напишу hostname/folder/test.html
то получу /folder/test.html

а если я хочу чтобы при вводе hostname/main.html
или hostname/logo.gif
запрос перенаправлялся на /site/main.html, /site/logo.gif соответственно

в общем как проверять не только файлы и папки с таким именем, но и проверять есть ли в папке site файл или папка с таким именем???

надеюсь не слишком запутанно написал

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
проблема с mod_rewrite
« Ответ #1 : 30 Июля 2004, 15:04:57 »

RewriteRule ^hostname/(.*) /site/$1
Не все коту матрица.

Оффлайн Daiz13

  • наблюдатель
  • Постоялец
  • ***
  • Сообщений: 150
  • +0/-0
  • 2
    • Просмотр профиля
    • http://rg.com.ua/
проблема с mod_rewrite
« Ответ #2 : 02 Августа 2004, 11:45:34 »
Попробуй так:

RewriteEngine on
RewriteCond 
%{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-d
RewriteRule 
^(.*)$ /index.php 
[QSA,L]

Оффлайн Jean

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 113
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с mod_rewrite
« Ответ #3 : 02 Августа 2004, 11:53:23 »
Daiz13

объясни, пожалуйста что за флаг
[QSA,L]

сколько не читал так и не понял

Оффлайн sublimity

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 121
  • +0/-0
  • 0
    • Просмотр профиля
проблема с mod_rewrite
« Ответ #4 : 05 Августа 2004, 13:02:12 »
А если так:
(Не везде подайдет но ...)
 # Если запрашивался index.php то и переходим на него
 RewriteRule ^index.php - [L]

 #Проверка существования файла
 RewriteCond   %{REQUEST_FILENAME} -f

 # Если существует делаем редирект
 # RewriteRule   (.*)$ %{REQUEST_FILENAME} [L]
 RewriteRule (.*)$ $1 [L]

 # Если файл НЕ существует то переходим на index.php
 RewriteRule (.*)$ /index.php [L]

[L] - "последнее правило"
-f  - Проверка существования файла ....

Посматри это , может спасет
http://httpd.apache.org/docs/mod/mod_rewrite.html

http://sitemaker.ru/technologies/webserver/mod_rewrite3/
 И если не видел это то тогда обязательно сюда Ж-)
http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html

Оффлайн Jean

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 113
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с mod_rewrite
« Ответ #5 : 05 Августа 2004, 13:13:42 »
сделал вот так:
вроде работает, проверил под виндой у себя дома. и на хостинге

Options +FollowSymlinks

RewriteEngine on

#дописывать /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule    ^(.*[^/])$  $1  [L]

#проверять такие же файлы в папке cache
# то есть например проверить существование файла /logo.gif/4111ed75cb72c
RewriteCond       c:/localhost/flexcubes/cache%{REQUEST_URI}/4111ed75cb72c  -f
RewriteRule  .*   /flexcubes/cache%{REQUEST_URI}/4111ed75cb72c  [L]

#все остальное на index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /flexcubes/index.php5 [L]

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28