Переписать символы для удаления правил - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть это правило перезаписи в моем файле .htaccess, но в PHP, когда я получаю URL ($ _GET ['url']), оно удаляет один из слэшей из http://

RewriteRule ^details/([0-9]+)/(.*)$ details/index.php?urlid=$1&url=$2 [L,QSA]

Если URL-адрес http://foo.com/details/12345/http://www.bar.com/dsfkjds, PHP видит http: /www.bar.com/dsfkjds

Я не уверен, что это проблема PHP, regex или apache. Любая помощь приветствуется, спасибо!

1 Ответ

2 голосов
/ 29 декабря 2011

Это Apache, нормализующий сегменты пути. Слишком поздно для RewriteRule обнаружить или изменить его.

Однако вы можете увидеть исходный URL-адрес запроса в $_SERVER["REQUEST_URI"] и снова применить свое регулярное выражение, чтобы увидеть полный параметр.

preg_match("#^/+details/+([0-9]+)/+(.*)$#", $_SERVER["REQUEST_URI"], $m)
and $url = $m[2];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...