Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mod_rewrite fastcgi + suexec
nospor
post 31.05.2011, 13:12:13
Post #1





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Mam plik .htaccess o następującej treści
Kod
IndexIgnore *

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule (.*)         index.php/$1 [L]

NIestety ten plik (ta regułka) nie działa. Wpisując adres, który nie istnieje, zamiast przenieść na index.php to serwer na stronie wywala
"No input file specified. "

Dzieje się tak gdy mam ustawione php w trybie fastcgi. Rozumiem, że w takim trybie taki htaccess nie pójdzie za dobrze. Co innego gdyby był w trybie mod-php.
Znalazłem na necie kilka prób zmodyfikowania tego .htaccess by działał poprawnie, ale niestety u mnie działały.

Macie jakieś z tym doświadczenia?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
webdice
post 31.05.2011, 13:51:44
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




W jaki sposób przekazujesz parametry do parsera PHP, a co ważniejsze jakie? Korzystasz a php-fpm? Napisz trochę więcej informacji.
Go to the top of the page
+Quote Post
nospor
post 31.05.2011, 14:01:24
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Hmmm, parametry do parsera php? W żaden sposób tego nie przekazuje. Całość jest odpalana przez przeglądarkę i ja nic nie przekazuję dodatkowo

php-fpm? Odpalam to na hostingu. Panelem do zarządzania na tym hostingu jest ISPConfig


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
webdice
post 31.05.2011, 14:13:11
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Fastcgi musi widzieć jaka jest ścieżka do pliku. Dawno nie konfigurowałem apache i nie pamiętam dokładnie jak to wyglądało, być może coś mieszam nginx. Powiedz mi jeszcze czy problem występuje tylko z .htaccess? Czy przy bezpośrednim odwołaniu się do pliku jest tak samo?
Go to the top of the page
+Quote Post
nospor
post 31.05.2011, 14:31:34
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




mam stronkę:
http://blabla.pl/
I ta stronka działa.

Teraz mam np link
http://blabla.pl/szukaj

Oczywiście taki katalog jak szukaj nie istnieje. Ale właśnie ten .htaccess miał w takim wypadku przekierować na index.php i już w index.php ruter by mi wywołał odpowiednią akcję. I normalnie na normalnym php, który jest odpalany jako mod apache to działa.
Niestety gdy php działa w trybie fastcgi to już coś takiego nie działa.

Próbowałem już z takimi kodami (znalazłem na necie):
Kod
IndexIgnore *

Options +FollowSymLinks +ExecCGI


RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule (.*)        /usr/bin/php index.php/$1 [QSA,L]

Tu jak widzisz podaje sciezkę do php. ale wywala internal serwer error (500)
Cytat
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.


Próbowałem też podawać samą pełną scieżkę do index.php ale nadal ten sam internal serwer error.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
webdice
post 31.05.2011, 14:41:19
Post #6


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Możesz spróbować:

Kod
RewriteRule (.*)         index.php?/$1 [L]


Spróbuj dodać do php.ini cgi.fix_pathinfo = 0.
Go to the top of the page
+Quote Post
erix
post 31.05.2011, 15:20:35
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




~webdice ma rację. Miałem ostatnio podobny problem. I ma on miejsce tylko przez (Fast)CGI, czyli pod Zend Server również. Zmarnowaliśmy na to ostatnio kilka godzin. ^^.

Przepisywanie zaraz po rozszerzeniu działa tylko pod mod_php albo filter.

Cytat
Spróbuj dodać do php.ini cgi.fix_pathinfo = 0.

To nie od tego. wink.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
nospor
post 1.06.2011, 12:41:39
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No żesz.... dodatkowy znak zapytania
@webdice, @erix skądżeście to wiedzieli?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
webdice
post 1.06.2011, 12:54:33
Post #9


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(erix @ 31.05.2011, 16:20:35 ) *
To nie od tego. wink.gif


Co masz konkretnie na myśli?

Cytat(nospor @ 1.06.2011, 13:41:39 ) *
No żesz.... dodatkowy znak zapytania
@webdice, @erix skądżeście to wiedzieli?


Do parsera musisz przekazać takie zmienne jak DOCUMENT_ROOT, SCRIPT_PATH itp, czasem jest tak że właśnie brakuje pytajnika, slasha. Człowiek się kiedyś na męczył to wie wink.gif.
Go to the top of the page
+Quote Post
erix
post 1.06.2011, 13:05:44
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Do parsera musisz przekazać takie zmienne jak DOCUMENT_ROOT, SCRIPT_PATH itp, czasem jest tak że właśnie brakuje pytajnika

Tylko że akurat w tym przypadku serwer przepuszcza SCRIPT_PATH w całości jako nazwę pliku, a nie podzieloną na REQUEST_URI i SCRIPT_PATH. wink.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
webdice
post 1.06.2011, 13:49:10
Post #11


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(erix @ 1.06.2011, 14:05:44 ) *
Tylko że akurat w tym przypadku serwer przepuszcza SCRIPT_PATH w całości jako nazwę pliku, a nie podzieloną na REQUEST_URI i SCRIPT_PATH. wink.gif


To już zależy od konkretnej konfiguracji, której w tym wypadku nie widzieliśmy. Poza tym nie chce się wykłócać bo tak jak mówiłem z konfiguracją Apache miałem do czynienia dość dawno temu.

EDIT: Na przykładnie nginx:

Kod
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

fastcgi_param    SCRIPT_FILENAME        /home/domains/xxx/Public$fastcgi_script_name;
fastcgi_param    DOCUMENT_ROOT        /home/domains/xxx/Public;


Może Ci to troszkę rozjaśni temat.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:40