Помогите написать htacces

Статус
В этой теме нельзя размещать новые ответы.

the_stalker

Постоялец
Регистрация
19 Фев 2007
Сообщения
116
Реакции
5
Посмотрел пару тем, но так и не смог разобраться. Этот htaccess для меня как китайская грамота.

Задача такова
При заходе на страницу например
Для просмотра ссылки Войди или Зарегистрируйся
Должна грузится индексная страница которая лежит в корне.

Мне главное что бы по любому адресу грузился идексный файл, а в нем уже я с помощью пхп буду отображать разный контент.
 
Код:
rewriteengine on
rewritecond %{REQUEST_URI} !\.(gif|jpeg|jpg|css|js|zip|rar)$
rewriterule ^(.+)$ index.php?originalUri=%{REQUEST_URI}&%{QUERY_STRING}

Вторая строка - для отсечения случаев, когда переписывать uri не нужно. В данном примере я написал отсечение по расширению запрошенных файлов. Но лучше если ты все файлы, которые должны напрямую передаваться юзеру, поместишь в один каталог - назовем его external - и правило отсечения напишем как
Код:
rewritecond %{REQUEST_URI} !/external/
т.е. если в запрошенном uri есть строка /external/, то управление на index.php передаваться не будет.

Третья строка передает управление на index.php, передавая индексу кроме всех исходных параметров, дополнительный - originalUri, в котором находится запрошенный uri.
 
Что-то ты намудрил, нихера не работает.
У меня файлы должны быть динамическими
файла с названием sample-post.htm нету поэтому должен загружатся index.php в котром я через $_SERVER['REQUEST_URI] буду парсить название файла
 
Если есть mod_rewrite
Код:
Options +FollowSymlinks -MultiViews -Indexes
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

Если нет, то ставь на ошибку 404 и посмотри в $_SERVER вызываемый Url
 
Что-то ты намудрил, нихера не работает.
У меня файлы должны быть динамическими
файла с названием sample-post.htm нету поэтому должен загружатся index.php в котром я через $_SERVER['REQUEST_URI] буду парсить название файла

Сорь, у меня ошибка была. Zavulon хорошо написал.

Если что не работает с rewrite, пропиши в httpd.conf для нужного хоста следующее:
RewriteLog абсолютный_путь_к_файлу_лога
RewriteLogLevel число_от_0_до_9

Получишь лог всех операций, выполняемых при обработке rewrite-ом. RewriteLogLevel 3 уже показывает достаточно детально процесс, можно больше трех не ставить.

Zavulon, а ведь можно просто переписывать на index.php [QSA,L], без ?url=..... . $_SERVER['REQUEST_URI'] ведь выставляется из окружения "снаружи", а не из соображений php, который "видит" вызов именно index.php.
 
а ведь можно просто переписывать на index.php [QSA,L], без ?url=..... . $_SERVER['REQUEST_URI'] ведь выставляется из окружения "снаружи"

Мне так спокойнее. Уверен, что будет работать везде, где есть Apache+mod_rewrite, независимо от сумашедших ручек админов хостингов.
 
А можно вот так))
Action Name "/_Kernel/Scriptor.php"
AddHandler Name .htm

Что будет? А будет вот что: при наборе в браузере адреса какой-либо страницы с расширением htm будет выводится результат работы скрипта Scriptor.php
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху