[PHP] Кто пользовался mod_rewrite?
В .htaccess в каталоге где лежат скрипты написал:
---------
RewriteEngine on
RewriteRule ^(.*)support/1/(.*)$ $1index.php?support=1$2
---------
Не работает. При вызове имя_сайта/support/1/ броузер выдаёт интернал еррор.
Что я не так делал? Документацию прочитал
я делал так:
---------
RewriteEngine on
RewriteRule (.*)support/1/(.*) index.php
---------
А в index.php уже разгребал $REQUEST_URI
В error.log
[Wed Sep 25 013021 2002] [error] [client 127.0.0.5] Premature end of script headers php.exe
В custom.log
127.0.0.5 - - [25/Sep/2002013021 +0300] "GET /support/1/ HTTP/1.1" 500 597
Мож какие нюансы работы есть которые я не учёл?
Apache: 2.0.40
PHP: 4.2.2 CGI
Мож если php стоит как cgi мод_рв не работает?
"Premature end of script headers: php.exe" обычно говорит о том, что ты выдал тело документа до того как выдал Conetent-type: text/html
On 2002-09-24 2130, Anonymous wrote
В настройках апача включил (раскомментировал строку LoadModule rewrite_module modules/mod_rewrite.so),
В .htaccess в каталоге где лежат скрипты написал
---------
RewriteEngine on
RewriteRule ^(.*)support/1/(.*)$ $1index.php?support=1$2
---------
Не работает. При вызове имя_сайта/support/1/ броузер выдаёт интернал еррор.
Что я не так делал? Документацию прочитал
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)support/1/(.*)$ /index.php
кинь индекс в корень, вроде должно заработать
Эти строчки я писал в .htaccess. Это ничего?
500 Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Жаль... Я уже ковыряюсь с этим 3 дня. Понятно, что руки кривые, но как их выровнять...
RewriteBase /
#RewriteRule ^(.*)support/1/(.*)$ /index.php
#RewriteRule ^/support/1/(.*) /index.php
Типа возможные варианты
Here are all possible substitution combinations and their meanings
Inside per-server configuration (httpd.conf)
for request ``GET /somepath/pathinfo''
Given Rule Resulting Substitution
---------------------------------------------- ----------------------------------
^/somepath(.*) otherpath$1 not supported, because invalid!
^/somepath(.*) otherpath$1 [R] not supported, because invalid!
^/somepath(.*) otherpath$1
not supported, because invalid!
---------------------------------------------- ----------------------------------
^/somepath(.*) /otherpath$1 /otherpath/pathinfo
^/somepath(.*) /otherpath$1 [R] http//thishost/otherpath/pathinfo
via external redirection
^/somepath(.*) /otherpath$1
not supported, because silly!
---------------------------------------------- ----------------------------------
^/somepath(.*) http//thishost/otherpath$1 /otherpath/pathinfo
^/somepath(.*) http//thishost/otherpath$1 [R] http//thishost/otherpath/pathinfo
via external redirection
^/somepath(.*) http//thishost/otherpath$1
not supported, because silly!
---------------------------------------------- ----------------------------------
^/somepath(.*) http//otherhost/otherpath$1 http//otherhost/otherpath/pathinfo
via external redirection
^/somepath(.*) http//otherhost/otherpath$1 [R] http//otherhost/otherpath/pathinfo
via external redirection
(the [R] flag is redundant)
^/somepath(.*) http//otherhost/otherpath$1
http//otherhost/otherpath/pathinfo
via internal proxy
Inside per-directory configuration for /somepath
(i.e., file .htaccess in dir /physical/path/to/somepath containing RewriteBase /somepath)
for request ``GET /somepath/localpath/pathinfo''
Given Rule Resulting Substitution
---------------------------------------------- ----------------------------------
^localpath(.*) otherpath$1 /somepath/otherpath/pathinfo
^localpath(.*) otherpath$1 [R] http//thishost/somepath/otherpath/pathinfo
via external redirection
^localpath(.*) otherpath$1
not supported, because silly!
---------------------------------------------- ----------------------------------
^localpath(.*) /otherpath$1 /otherpath/pathinfo
^localpath(.*) /otherpath$1 [R] http//thishost/otherpath/pathinfo
via external redirection
^localpath(.*) /otherpath$1
not supported, because silly!
---------------------------------------------- ----------------------------------
^localpath(.*) http//thishost/otherpath$1 /otherpath/pathinfo
^localpath(.*) http//thishost/otherpath$1 [R] http//thishost/otherpath/pathinfo
via external redirection
^localpath(.*) http//thishost/otherpath$1
not supported, because silly!
---------------------------------------------- ----------------------------------
^localpath(.*) http//otherhost/otherpath$1 http//otherhost/otherpath/pathinfo
via external redirection
^localpath(.*) http//otherhost/otherpath$1 [R] http//otherhost/otherpath/pathinfo
via external redirection
(the [R] flag is redundant)
^localpath(.*) http//otherhost/otherpath$1
http//otherhost/otherpath/pathinfo
via internal proxy
RewriteEngine on
RewriteBase /
RewriteRule ^/support/1/(.*) index.php?test=1$1
Вызывал так
http//e-biz/support/1/dddddddddd
Выдавался интернал эррор, т.к. в каталоге имелся файл support.php. Это то что я нарыл.
В логе писалось
127.0.0.5 - - [28/Sep/2002142858 +0300] [e-biz/sid#664658][rid#64a628/subreq] (2) init rewrite engine with requested uri /support.php/1/dddddddddd
127.0.0.5 - - [28/Sep/2002142858 +0300] [e-biz/sid#664658][rid#64a628/subreq] (1) pass through /support.php/1/dddddddddd
Но если я прописываю
RewriteEngine on
RewriteBase /
RewriteRule ^/support1/1/(.*) index.php?test=1$1
И вызываю
http//e-biz/support1/1/dddddddddd
Броузер выдаёт The page cannot be found
И в логе пишется
127.0.0.5 - - [28/Sep/2002142901 +0300] [e-biz/sid#664658][rid#648620/initial] (2) init rewrite engine with requested uri /support1/1/dddddddddd
127.0.0.5 - - [28/Sep/2002142901 +0300] [e-biz/sid#664658][rid#648620/initial] (1) pass through /support1/1/dddddddddd
Вроде как срабатывает, но почему-то не подставляет index.php...
В .htaccess прописано было
RewriteEngine on
RewriteBase /
RewriteRule ^/support/1/(.*) /index.php?
^
IMHO, RW не знает куда перенаправлять.
(То бишь ты говоришь типа на такой патерн перенаправь на index, но не говоришь где индекс лежит)
Попробуй с конкретными путями
test=1$1
==кусь==
Но если я прописываю
RewriteEngine on
RewriteBase /
RewriteRule ^/support1/1/(.*) index.php?test=1$1
=кусь
Типа вот кусок чего когда то было написано
#RewriteEngine on
#RewriteBase /
#RewriteCond %{REQUEST_URI} ^/test/dhtml.*$ [E=vvssss]
#RewriteRule ^.*.htm.{0,1}$ /index.pl#$vv
[ Это Сообщение было отредактировано ReDrum в 2002-09-30 1839 ]
Ошибка в том, что запись обработчика берется в кавычки
RewriteEngine on
RewriteBase /
RewriteRule ^/support/1/(.*) "/index.php?"
Удачного вам написания скриптов!
Главное - не тема. Главное, что он "создаёт веб сайты"... :D Зри, как говоритсо, куда надо... :D
Я заметил ссылку внизу своей темы "на близкие темы" и прочел ее. Не обратив внимание на дату решил дать ответ. Даже если тому человеку это не важно, то кому-то это может быть кстати.
А насчет создания сайтов -не стоит на меня наезжать, я не флужу, не делаю рекламу себе, так что давай будем без этих приколов.