Перезапись URL с помощью Apache mod_rewrite - PullRequest
1 голос
/ 06 сентября 2011

На моей веб-странице PHP я хочу перенаправить следующим образом:

header("Location: page2.php?id=$tid");

Строка запроса необходима page2.php, но я не хочу, чтобы строка запроса отображалась в браузере посетителя. Я думал, что мог бы удалить строку запроса, используя mod_rewrite следующим образом:

RewriteEngine On
RewriteRule ^page2\.php page2\.php?

Это просто удаляет строку запроса для page2.php (заставляя ее вести себя нежелательным образом) и по-прежнему отображает строку запроса в области отображения URL браузера.

Я нашел другие ссылки на удаление строк запросов, например mod_rewrite: удалить строку запроса из URL? , но когда я добавляю перенаправление к правилу, например [R = постоянный], URL-адрес, отображаемый моим браузером, исходит от

localhost/admin/page2.php?id=123

с веб-страницей, которая отображается нормально, до

http://localhost/C:/xampp/htdocs/admin/page2.php

, где веб-страница не загружена, но вместо этого отображается следующее:

Access forbidden!

You don't have permission to access the requested object. 
It is either read-protected or not readable by the server.

If you think this is a server error, please contact the webmaster.

Error 403

localhost
9/5/2011 9:57:19 PM
Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1

Как я могу перенаправить на страницу, которая нуждается в строке запроса, но скрыть эту строку запроса от посетителя, чтобы она не отображалась им в браузере?

1 Ответ

1 голос
/ 06 сентября 2011

Взгляните на эту статью блога - Apache RewriteRule и строку запроса

...