Передача и URL как параметр в mod-rewrite - PullRequest
1 голос
/ 14 августа 2010

Я пытаюсь передать URL как параметр в mod-rewrite. Я предполагаю, что есть проблема в моем регулярном выражении. Это мой .htaccess:

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteRule **^go/((http:\/\/)+[A-Za-z0-9\-]+[\.A-Za-z])/?$** feedmini.php?url=$1 [L]
</IfModule>

URL-адрес, который я хочу передать, выглядит как http://www.aaaa.com/aaa/?q=v, но когда я пытаюсь добраться до него на ходу / http://www.aaaa.com/aaa/?q=v, я получаю страницу с ошибкой 404. Я также пробовал с **^go/([A-Za-z0-9\-\/:]+[\.A-Za-z]+)/?$**, но затем URL-адрес, который я передаю, выглядит следующим образом: http: /www.aaaa.com/aaa/ (обратите внимание на одиночный '/' после 'http:');

Есть идеи?

Заранее спасибо / Ale

1 Ответ

1 голос
/ 14 августа 2010

Итак, ваша первая проблема (в вашем первом блоке кода) состоит в том, что ваш шаблон Regex не будет соответствовать URL-адресу, поскольку он будет соответствовать только строке, которая начинается с http: //, а затем содержит только буквы или тире, которые заканчиваются один фулл-стоп или письмо. Возможно, это просто опечатка, и здесь должен присутствовать квантификатор, но даже в этом случае он не сможет соответствовать очень большому проценту или URL.

Это может показаться немного странным, но попробуйте это ...

RewriteRule ^go/http:/(.*)/?$ feedmini.php?url=http://$1 [R=302,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...