Пренаписването дава грешка

C++ JAVA
Post Reply
User avatar
cHuBakA
Нов
Нов
Posts: 160
Joined: Thu Sep 22, 2011 1:45 pm

Пренаписването дава грешка

Post by cHuBakA » Wed Jun 09, 2021 6:07 pm

Здравейте. Пренаписвам адресите като махам само файл окончанията ето така

Code: Select all

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php[L]
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [NC,L,R]
Работи. Обаче така при липса на страница ErrorDocument 404 не работи и дава винаги грешка 500. Къде може да е грешката??
by anonimen » Wed Jun 09, 2021 8:49 pm
// ПП. Като се замисля, това, което написах долу, може изобщо да не е вярно, но не пречи да пробваш.

Позабравил съм детайлите, но предполагам гърми, защото всичко, което не е файл/директория, пренасочваш вътрешно към същото нещо с добавено .php отзад.
Тоест, ако подам заявка example.com/index, ще заредиш example.com/index.php, и ако подам example.com/nosuchpage, отново ще заредиш example.com/nosuchpage.php, а този файл не съществува. При грешки от тип 500 може да погледнеш логовете на сървъра, където е записано на човешки език какъв е бил проблемът в заявката.
Според мен опитай да добавиш още едно условие дали действително php файлът, който искаш да заредиш, съществува, преди да пренасочиш вътрешно заявката:

Code: Select all

RewriteCond %{REQUEST_FILENAME}.php -f
Go to full post

User avatar
anonimen
Web-tourist
Web-tourist
Posts: 1610
Joined: Mon Jun 11, 2012 6:07 pm
Answers: 166
Location: Parse error: unexpected "}" in /home/index.php on line 26

Re: Пренаписването дава грешка

Post by anonimen » Wed Jun 09, 2021 8:49 pm

// ПП. Като се замисля, това, което написах долу, може изобщо да не е вярно, но не пречи да пробваш.

Позабравил съм детайлите, но предполагам гърми, защото всичко, което не е файл/директория, пренасочваш вътрешно към същото нещо с добавено .php отзад.
Тоест, ако подам заявка example.com/index, ще заредиш example.com/index.php, и ако подам example.com/nosuchpage, отново ще заредиш example.com/nosuchpage.php, а този файл не съществува. При грешки от тип 500 може да погледнеш логовете на сървъра, където е записано на човешки език какъв е бил проблемът в заявката.
Според мен опитай да добавиш още едно условие дали действително php файлът, който искаш да заредиш, съществува, преди да пренасочиш вътрешно заявката:

Code: Select all

RewriteCond %{REQUEST_FILENAME}.php -f

User avatar
cHuBakA
Нов
Нов
Posts: 160
Joined: Thu Sep 22, 2011 1:45 pm

Re: Пренаписването дава грешка

Post by cHuBakA » Wed Jun 09, 2021 9:05 pm

@anonimen стана! Така както каза проверката на файла явно е правила проблема. БЛАГОДАРЯ ТИ МНОГО !

Post Reply