Страницы

Поиск по вопросам

суббота, 7 декабря 2019 г.

Почему сервер выдает not found из-за буквы х

#php


Здравствуйте. Есть правило в .htaccess

RewriteRule ^page\/(.+)/(.+?)$ php/page.php?type=$1&theme=$2


На сайте страницы открываются по ссылке: 


  сайт.ру/page/категория/название


и все хорошо. все страницы открывает как нужно. но проблема с открытием страницы
по ссылке:


  сайт.ру/page/категория/хрюша


То есть, если есть русская буква х - выдает Not Found

В чем может быть проблема?

.htaccess

AddDefaultCharset WINDOWS-1251
DirectoryIndex index.php

php_value register_globals 0 
php_value magic_quotes_gpc 0 


RewriteEngine On
RewriteRule ^ready modules/ready.php [L,QSA]
RewriteRule ^2017\/(.+)$ modules/document.php?url=$1
RewriteRule ^error modules/error-no-doc.php [L,QSA]
RewriteRule ^not-verified modules/not-verified.php [L,QSA]
RewriteRule ^moderation modules/moderation.php [L,QSA]
RewriteRule ^type\/(.+)$ modules/type.php?url=$1
RewriteRule ^all-document\/(.+)/(.+?)$ modules/all-document.php?type=$1&theme=$2
RewriteRule ^page\/(.+)/(.+?)$ php/page.php?type=$1&theme=$2




##ErrorDocument 404 /error`

    


Ответы

Ответ 1



Уважаемый, я не силен в регулярках, но может вам как то поможет пример с экранированием всех наклонных черт RewriteRule ^page\/(.+)\/(.+?)$ php/page.php?type=$1&theme=$2 я про второе \/ все равно. та же ошибка Я не силен в .htaccess, но попробуйте использовать флаги RewriteRule ^page\/(.+)\/(.+?)$ php/page.php?type=$1&theme=$2 [L,NC] Это может предотвратить ошибку если у вас хрюша например где-то вылезает с большой буквы. Если это не поможет - переведите формат файла в UTF-8, предварительно сохранив копию оригинала и отпишите о результатах. После каждых изменений перезапускайте сервер(хотя меня здесь могут поправить о необходимости данного шага).

Ответ 2



Вопросительный знак во втором выражении стоит не там. Удалите его или вынесите за круглую скобку - вот пример: Если вам нужно что-то ещё после ввода то привнесите варианты для конкретного рассмотрения в своём вопросе.

Ответ 3



Вопросительный знак лишний и не имеет смысла: RewriteRule ^page\/(.+)/(.+)$ php/page.php?type=$1&theme=$2

Комментариев нет:

Отправить комментарий