Сохранение двойной косой черты в mod_rewrite - PullRequest
1 голос
/ 07 ноября 2010

Я всюду искал этот ответ, и опубликованные ответы не соответствуют моей конкретной ситуации, поскольку он дает мне 404 ошибки, и я не уверен, почему.

Я пытаюсь переписатьэто: /c.php?url=http://www.example.com

В это: /c/http://www.example.com

Прямо сейчас у меня есть это в моем mod_rewrite:

RewriteEngine on
RewriteRule ^c/(.*)(/)?$ /c.php?url=$1

Но когда он переписывает URL, который япытаясь отправить в скрипт PHP, он пишет «http:/example.com», с одной косой чертой вместо двойной косой черты.

Я видел много сообщений об этом, связанных с правилом THE_REQUEST, но когда япопробуйте применить их к моему файлу htaccess, они терпят неудачу.Я не уверен, что не так, любая помощь будет высоко ценится.

1 Ответ

2 голосов
/ 07 ноября 2010

Apache удаляет несколько косых черт внутри пути.И, как вы уже упоминали, вы можете решить эту проблему, проверив строку запроса в THE_REQUEST :

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /c/([^?\ ]+)/?
RewriteRule ^c/ /c.php?url=%1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...