- .htaccess проблем
WT форуми -> PHP MySQL ASP.NET -> .htaccess проблем
Създайте нова тема Напишете отговор 
Автор Съобщение
kini
Нов
Нов

Регистриран на: 01/05/2010 12:36 pm

Support: 2
Bonus: 4
Мнения: 140
Мнение 30/04/2018 2:02 pm     .htaccess проблем Отговорете с цитат


Здравейте,

Забелязвам нещо странно, което се случва с url след добавени правила в .htaccess

Имам следното:
RewriteRule ^messages/inbox([^/"']+)/? messages.php?to=inbox [L]

В случая url става http://site.com/messages/inbox


Но ако потребителя добави ` / ` след inbox, се получава следното нещо в url бара на браузъра и излиза `Access forbidden!`

http://site.com/D:/xampp/htdocs/messages/inbox/inbox/.php



Как може да се избегне този проблем, не би трябвало наклонената черта да срива нещата по този начин Shocked
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
joTunkiq
Активен
Активен

Регистриран на: 25/12/2012 12:03 pm

Support: 133
Bonus: 266
Мнения: 800
Мнение 30/04/2018 7:04 pm      Отговорете с цитат


Пробва ли да ескейпнеш наклонените черти?

([^\/]+)\/?


П.с: Ако знаеш че ще получаваш само цифри иползвай [0-9]+, не позволявай да ти се въвежда какво да е като параметър Smile Не че това е грешно, но е хубава практитка при пренаписване на Url-а - когато очакваш id - то да е цифри, ако очакваш username то да е определени символи, а не квото дойде Very Happy Idea Question
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 158
Bonus: 315
Мнения: 1472
Мнение 30/04/2018 8:47 pm      Отговорете с цитат


Относно ескейпването на наклонените черти - няма нужда:

https://stackoverflow.com/questions/3591452/do-you-have-to-escape-a-forward-slash-when-using-mod-rewrite

Защото нямат специално значение в регулярните изрази.

Ескейпват се обратните наклонени черти - \\.

По темата: сигурен ли си, че урл-то, което си дал е правилно? http://site.com/D:/xampp/htdocs/messages/inbox/inbox/.php

Или е просто http://site.com/messages/inbox/inbox/.php ?

Защото в първия случай ^messages няма да матчне, защото урлто не започва с "messages", а с "D:/"
А като не матчне - се опитва да отвори файл ".php", който започва с точка и е забранен от настройките на сървъра (явно) за отваряне отвън. Оттам идва и 403 грешката.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети