.htaccess проблем

kini

Registered
Здравейте,

Забелязвам нещо странно, което се случва с 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


Как може да се избегне този проблем, не би трябвало наклонената черта да срива нещата по този начин :shock:
 
Пробва ли да ескейпнеш наклонените черти?

Код:
([^\/]+)\/?

П.с: Ако знаеш че ще получаваш само цифри иползвай [0-9]+, не позволявай да ти се въвежда какво да е като параметър :) Не че това е грешно, но е хубава практитка при пренаписване на Url-а - когато очакваш id - то да е цифри, ако очакваш username то да е определени символи, а не квото дойде :D :idea: :?:
 
Относно ескейпването на наклонените черти - няма нужда:

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 грешката.
 

Горе