Как передать часть URL скрипту при помощи "mod_rewrite"

ProSait

Новичок
Как передать часть URL скрипту при помощи "mod_rewrite"

Суть такая, нужно все что находится после http://site.ru/comp/ передать в виде переменной в http://site.ru/comp/index.php с учетом того, что после http://site.ru/comp/ может находится все, что угодно в том числе и адреса других сайтов и папки и даже такое http://site.ru/comp/www.site2.ru/search?h=ytr&tr=125&ug=uiyt.
 

ProSait

Новичок
Тот же вопрос в другой формулировке:

Представим, что
Х - это www.other-site.ru/script.php?o=1&t=2 или www.other-site.ru

Нужно сделать следующее:

Из http://www.site.ru/comp/X

сделать

http://www.site.ru/comp/index.php?url=X,

при этом вид ссылки должен остаться прежним то-есть

http://www.site.ru/comp/X
 

ProSait

Новичок
Спасибо! Решение найдено.
Пришлось изменить папку на несуществующюю иначе получится зацикливание.
.htaccess:
PHP:
RewriteBase /
# Убираем в начале адреса http, https, ftp и т.п.
RewriteRule ^comp/(.*)://(.*)$  /comp/$2 [R=301]
# Просто изменил папку с реальной на несуществующюю
RewriteRule ^comp/(.*)$  /comp2/index.php
/comp2/index.php:
PHP:
$url=$_SERVER['REQUEST_URI'];
# Обрезаем /comp/ в начале
$url=substr_replace($url, "", 0, 6);
 

ProSait

Новичок
Автор оригинала: Фанат
очень интересный комментарий
Так нужно, потомо, что меня интересует только адреса начинающиеся с http в остальных случаях адрес не будет найден, очем пользователь будет предупрежден. Конечно обрезается не в начале а после хттп://site.ru/comp/
хттп://site.ru/comp/http://www.site2.ru
 
Сверху