Назад | Перейти на главную страницу

Apache не работает, когда я передаю URL-адрес в качестве аргумента

Привет всем, я действительно запутался в этой проблеме. Попробую описать это:

Проблема в: http://mydomain.com/somedir/somephp.php?arg1=value&arg2=http://otherdomain.com&arg3=http://othertoo.com/somepath/something... полностью не работает. С кодированием URL и без него.

Мой сайт читает все после mydomain.com/everything, кроме существующих файлов и каталогов. Я делаю это с помощью mod_rewrite:

Options -Indexes 

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ handler.php

Пример запроса выше находится на handler.php. Если я закомментирую RewriteRule, будет ошибка apache:

Forbidden

You don't have permission to access /somedir/somephp.php on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Проведя много тестов и т. Д., Я понял, что проблема связана со строкой http: // или: // в аргументах URL. Но его URL-адрес закодирован: S

Этот материал должен быть системой аутентификации openId, и она не работает при обратной передаче, и я уверен, что URL-адрес в аргументе url вызывает эту ошибку.

Я никогда раньше не сталкивался с этой проблемой, хотя я делал то же самое. Кодировка URL-адреса должна работать.

Пожалуйста, помогите мне! Спасибо!

что значит «полностью не работает»? какой код ошибки вы идете? какая ошибка в вашем серверном файле? что появляется?

ваши правила перезаписи в порядке! ошибка разрешения не имеет значения, поскольку это не тот файл, который вы хотите обслуживать, пока доступен handler.php.

однако я думаю, что ваша ошибка в том, что приведенная выше конфигурация не совсем та, которую вы пробовали. если у вас это так:

RewriteRule ^(.*)$ handler.php?a=b

вы потеряете союзник наших аргументов строки запроса, потому что он будет перезаписан a = b. тогда вы можете сделать следующее:

RewriteRule ^(.*)$ handler.php?a=b [QSA]

который сообщает apache добавить строку запроса (QSA = QueryStringAppend)