удалить http из URL в .htaccess (mod_rewrite) - PullRequest
1 голос
/ 02 марта 2011

Я застрял на этом целую вечность и перепробовал множество исправлений, но просто не могу разобраться с этим!

Я управляю сайтом, на котором содержимое страниц генерируется на основе URL-адреса.Например:

http://www.mysite.com/http://www.supercheese.com 

Будет генерировать коллаж контента из mysite.com и supercheese.com

.htaccess, который я использую для этого (на mysite.com):

<ifModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{ENV:REDIRECT_STATUS} 200
    RewriteRule .* - [L]
    RewriteRule assets/.* - [L]
    RewriteRule ^(.*)$  test.php?url=$1 [NC,L]

</ifModule>

Таким образом, в основном второй URL передается в строке php.

У меня такой вопрос, мне нужно удалить http: // с адреса, используя .htaccess

Например, если кто-то наберет:

http://www.mysite.com/http://www.supercheese.com 

Мне нужно, чтобы он стал:

http://www.mysite.com/www.supercheese.com 

Большое спасибо заранее за то, что взглянули на это.Ребята, вы молодцы.

Ответы [ 2 ]

2 голосов
/ 02 марта 2011

Вы можете просто использовать RedirectMatch

http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirectmatch

Попробуйте с:

RedirectMatch ^/https?://(.*)$ http://www.mysite.com/$1

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

Редактировать: добавить / до http

Редактировать: Дэвид прав, посмотрите его ответ и измените ваш способ написания этих URL

1 голос
/ 02 марта 2011

Мне кажется, что схема URL по своей сути проблематична.

Использование незашифрованного двоеточия : в URL - кроме указания http для указания протокола доступа - похоже, заставляет сервер думать, что он выполняет аутентификацию в форме http://username:password@hostname/.

Я знаю, что это не дает прямого ответа на вопрос, решение состоит в том, чтобы изменить URL-схему.- (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...