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

Проблема с перезаписью мода со строками запроса

Мое правило перезаписи мода таинственным образом обрезает точки в моей строке запроса.

Например, это URL-адрес запроса:

http://mysite/tag/2/Search+For+Articles...

это строка запроса, которую я хочу:

tag=2&clear=Search+For+Articles...

но это то, что я получаю

tag=2&clear=Search+For+Articles

Вот моя конфигурация mod_rewrite

Options -Indexes
Options +FollowSymLinks
RewriteEngine On

RewriteRule ^tag/([^/]*)/([^/]*)(/?)$ f.php?tag=$1&clear=$2 [L,QSA]

Как я могу исправить эту проблему?

Я думаю, проблема может быть в самой конфигурации Apache ... Я создал простой f.php скрипт на одном из моих серверов Apache2, который просто состоял из следующего:

<pre>
<?php
print_r($_SERVER);
?>
</pre>

Затем я создал .htaccess файл с точным содержанием, которое вы указали в своем вопросе. Теперь, когда я ударил http://my.server.com/tag/2/Search+For+Articles... У меня ошибка 404. Однако если бы я назвал это как http://my.server.com/f.php?tag=2&clear=Search+For+Articles... Я получил ожидаемый результат. Затем я вернулся к своей конфигурации Apache и обнаружил, что в списке каталогов для пути, по которому я работал, AllowOverride None поэтому я изменил это на AllowOverride All и попытался /tag/... URI с префиксом и низкий, и вот, я получил следующий вывод:

Array
(
    [REDIRECT_STATUS] => 200
    [HTTP_HOST] => my.server.com
    [PATH] => /usr/local/bin:/usr/bin:/bin
    [DOCUMENT_ROOT] => /var/www
    [SERVER_ADMIN] => webmaster@localhost
    [SCRIPT_FILENAME] => /var/www/f.php
    [REMOTE_PORT] => 35393
    [REDIRECT_QUERY_STRING] => tag=2&clear=Search+For+Articles...
    [REDIRECT_URL] => /tag/2/Search+For+Articles...
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => tag=2&clear=Search+For+Articles...
    [REQUEST_URI] => /tag/2/Search+For+Articles...
    [SCRIPT_NAME] => /f.php
    [PHP_SELF] => /f.php
    [REQUEST_TIME] => 1313889895
)

Я очистил некоторые переменные, специфичные для моего сервера, но, как вы можете видеть, QUERY_STRING соответствует ожиданиям.