Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2014, 15:27   #1
arssivka
Новичок
Джуниор
 
Регистрация: 27.04.2014
Сообщений: 2
По умолчанию Составление RewriteRule

Недавно занялся написанием простенького движка для сайта для своих нужд. Опыта у меня немного, поэтому не исключаю, что есть более красивые варианты. Но перейду к сути: работа его заключается в том, что index.php будет обрабадывать все запросы к страницам, получая информацию через $_GET[''] переменные. Все запросы должны быть вида http://url/page/id, где page и id строковые значения, попадающие под ([a-zA-Z0-9_]*). Если было обращение к другому *.php файлу, то расширение обрезается и имя файла обрабатывается по предыдущему правилу. Обращения к статическим файлам разрешены без изменений адреса. Все прочие значения не обрабатываются через RewriteRule. Вот что у меня получилось:
Код:
RewriteEngine On
DirectorySlash Off
RewriteBase /~arssivka/
RewriteRule ^.htaccess$ - [F]

RewriteCond %{ENV:REDIRECT_FINISH} !^$
	RewriteRule ^ - [L]

RewriteCond %{REQUEST_URI} \.(css|jpg|gif|png|zip|rar|doc|xls|js|tif|tiff|docx|xlsx|ico)$
    RewriteRule ^(.*)$ $1 [L,QSA,E=FINISH:1]

RewriteRule ([a-zA-Z0-9]+)\.php$ $1/ [R=301,L]

RewriteRule ^([a-z0-9]+)/?$ index.php?page=$1 [L,E=FINISH:1]
RewriteRule ^([a-z0-9]+)/([a-zA-Z0-9_]+)/?$ index.php?page=$1&id=$2 [L,E=FINISH:1]
Файлы у меня валяются в public_html, которые в свою очередь подхватыевает mod_userdir и дебаг в нем я включить не смог. Если посоветуете решение или какой-нибудь мануал по этому вопросу, то так же буду благодарен.
Итог работы вышеперечисленного набора правил получается следующий:
Корректно обрабатываются:
http://localhost/~arssivka/mew
http://localhost/~arssivka/mew/
http://localhost/~arssivka/mew/id
http://localhost/~arssivka/mewid/
// Существует каталог scripts
http://localhost/~arssivka/marinaivina/scripts
http://localhost/~arssivka/marinaivina/scripts/
Некорректно обрабатываются:
// cуществует файл config.php
http://localhost/~arssivka/marinaivina/config - 404
http://localhost/~arssivka/marinaivina/config/ - 404
http://localhost/~arssivka/marinaivina/config.php - $_GET['page'] - пуст
arssivka вне форума Ответить с цитированием
Старый 27.04.2014, 20:54   #2
arssivka
Новичок
Джуниор
 
Регистрация: 27.04.2014
Сообщений: 2
По умолчанию

Лог удалось включить. В общем...он просто пропускает правило RewriteRule ([a-zA-Z0-9]+)\.php$ $1/ [R=301,L] в тех случаях, которые не работают О_о
arssivka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отмена RewriteRule kettanaito PHP 2 03.05.2013 18:46
RewriteRule и .htaccess Abuhamed PHP 1 30.04.2013 18:28
Вопрос RewriteRule scalpel PHP 12 14.01.2012 19:41
RewriteRule в .htaccess Gorychev HTML и CSS 3 23.09.2010 13:15
RewriteRule wall66 PHP 3 05.01.2009 16:01