помогите с ЧПУ

Ixe

Новичок
помогите с ЧПУ

не могу разобраться, как сделать что бы перенаправляло на index.php запрсоы в которых помимо прочего присутствует точка?

Action throw /index.php

<FilesMatch "^([^.]+)$">
ForceType throw
</FilesMatch>

<FilesMatch index.php>
ForceType application/x-httpd-php
</FilesMatch>
 

antiportal

Guest
Этот пример валяется на спектаторе так долго, что не подлежит обсуждению о своей работоспособности.
 

Ixe

Новичок
Ну так подскажите, что бы перенаправлял все на нужную мне страницу! Рег типа .* не работает тут!
 

antiportal

Guest
Ну код же элементарный! кидает он все на файл index.php в корне (где .htaccess). В том файле разбираешь урл.
Рег типа .* не работает тут!
Где "тут"? Все работает!
 

MiRacLe

просто Чудо
RewriteEngine on #
RewriteRule ^index.php.*$ - [L] # index.php в дальнейших преобразованиях не учавствует
RewriteRule ^img/.*$ - [L] # не хочу чтобы картинки прогонялись через php скрипт
RewriteCond %{REQUEST_FILENAME} !-d # правило сработает если URI - не имя каталога в DOCUMENT_ROOT
RewriteCond %{REQUEST_FILENAME} !-f # и оно же сработает для тех URI которые не являются реальными файлами в DOCUMENT_ROOT
RewriteRule ^(.+) /index.php [PT] # для всех файлов не входящих в исключения описанные выше использовать index.php
 

Ixe

Новичок
у меня тупа пытается перенаправить на запрашваемый урл.

mod rewrite отпадает
 

antiportal

Guest
Тогда, наверное, php - не как модуль. Странный хостинг без rewrite =( Придется через 404..
 

Ixe

Новичок
как модуль
404 отпадает
и дело не в хостинге

все же почему FilesMatch глючит?
 

StUV

Rotaredom
странно, действительно
у меня Apache/1.3.27 (Win32) PHP/4.3.4RC1
твой пример работает

зы: немного поковыряюсь - м.б. что обнаружу
(если сам разберешься - запости причину/решение сюда)

-~{}~ 25.05.04 15:45:

на 1.3.31 тоже все как надо (есть подозрение, что ты не очень понимаешь что должно получаться)...

при данном содержании .htaccess приведи примеры, на которые ты не получаешь, того чего ты хотел бы (т.е. запрос, что есть, что надо)
 

Ixe

Новичок
StUV
Вот так делаю:

Action throw /df/includes/parse_url.inc.php

<FilesMatch ".+">
ForceType throw
</FilesMatch>

<FilesMatch index.php>
ForceType application/x-httpd-php
</FilesMatch>

соотвественно, должо перенапрявлять на parse_url.inc.php
а уже там парсит

Но тут другое выяснилось

Если указать файл из корня сайта - все ок

А если из какой то директории (как у меня) то вообще вылезает Internal Server Error 500

Даже если тот файл пуст.

Что за ерунда?
 

StUV

Rotaredom
вопрос:
запросы какого вида ты хочешь перенаправить на parse_url.inc.php и куда все остальные ?

-~{}~ 25.05.04 17:00:

Action throw /df/includes/parse_url.inc.php

<FilesMatch ".+">
ForceType throw
</FilesMatch>

<FilesMatch parse_url.inc.php>
ForceType application/x-httpd-php
</FilesMatch>
в данном случае любой запрос идет на parse_url.inc.php, для которого вызывается пхп-обработчик (ессно, дир-я с этим скриптом должна быть ниже web_root)
 

Ixe

Новичок
StUV
вопрос:
запросы какого вида ты хочешь перенаправить на parse_url.inc.php и куда все остальные ?
Запросы примерно такого вида: /news/57/ etc

в данном случае любой запрос идет на parse_url.inc.php, для которого вызывается пхп-обработчик (ессно, дир-я с этим скриптом должна быть ниже web_root)
И что, это никак нельзя обойти?
 

StUV

Rotaredom
зачем ?
смысл ЧПУ не в том, чтобы скрыть имена реальных скриптов, а чтобы "подчистить" строку запроса ради человеков =)

остальное - вопросы из другой категории
 

Ixe

Новичок
Причем тут имена скриптов и их сокрытие?

тогда наверное я тебя не правильно понял, по поводу "дожна быть ниже web root"

?
 

StUV

Rotaredom
смысл в том, что у тебя в корне сайта лежит скрипт parse_url.inc.php и любой запрос (неотвечающий реальной структуре диска ниже веб-рута, но выглядящий "красиво") обрабатывается именно в нем и, в зависимости от вида запроса что-то там инклудит

т.е. вместо передачи в индекс.пхп ГЕТом переменных типа /?var1=val1&var2=.... у тебя ЧПУ

-~{}~ 25.05.04 17:42:

зы: =)
т.е. запрос
http://web_root/news/57/
ты сам в parse_url.inc.php "превращаешь" в что-то типа
http://web_root/parse_url.inc.php?page=news&nid=57

-~{}~ 25.05.04 17:43:

pps:
в итоге - а что тебе было нужно ?
 

Ixe

Новичок
Я понимаю. :)
нужно, что бы вся эта хрень, работала когда parse_url.inc.php находится не в корне сайта, а в df/includes/
У меня же, как я уже писал выше, выдает internal server error

если же parse_url.inc.php перекинуть в корень - все ok.
 

StUV

Rotaredom
т.е., у тебя физически этот файл расположен в
/.../www_root/df/includes/parse_url.inc.php
и с таким .htaccess возникают траблы:
Action throw /df/includes/parse_url.inc.php

<FilesMatch ".+">
ForceType throw
</FilesMatch>

<FilesMatch parse_url.inc.php>
ForceType application/x-httpd-php
</FilesMatch>
???
 

Ixe

Новичок
StUV
Не..в самом htaccess все ok.
Это здесь в примере просто другой путь

по поводу остального - да, возникают :(
 
Сверху