В вашем случае логичнее всего сделать редирект через PHP.
PS: момент, появилась идея.
PPS: в общем, спустя час я додумался лишь до такого:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /send\.php\?(.*)\?id=([^&]+)\ HTTP/ RewriteRule ^send\.php$ http://test/%2 [R=301,L]
http://test/send.php?info.html?id=123 >>> http://test/123?info.html?id=123
Остался только трэшняк после вопросительного знака и слишком широкие условия парсинга. Впрочем, если делаете для себя, а не для юзеров, второе не столь весомо.
Специфическая у вас задачка ммм... С двумя вопросительными знаками-то...
Надеюсь, кто-нибудь более шарящий в .htaccess поможет допилить.
Да он сам настраивается, были бы права на запись.
Локализуйте проблему. Работают ли вообще rewrite-правила хоть какие-то?
Mod_rewrite включен? Проверьте в httpd.conf
Дословно ошибку хотелось бы увидеть, про "внутренние компоненты не поддерживает".
<!DOCTYPE html> <html lang="en"> <head> <title>#nav</title> <meta charset="utf-8"> <style type='text/css'> *{padding:0; margin:0;overflow:hidden;} body{background-color: #DEDEDE;} .wrapper{width: 990px; height: 200px; margin: 100px auto; text-align: center;} </style> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript"> function check_url(url) { iregex = '^((http?)\:\/\/)?(sitename\.ru\/)*([a-z0-9\/])+(\.png|\.jpg|\.gif)$'; return url.match(iregex); } $().ready(function(){ $("#check").click(function(){ if (check_url($("#field").val())) $("#result").html("OK!"); else $("#result").html("Error!"); } ); }); </script> </head> <body> <div class='wrapper'> <input type="text" id="field" /> <input type="submit" id="check" value="check" /> <div id="result"></div> </div> </body> </html>
jquery не забудьте подключить
в выделенном красным блоке меняется URL, перед точками и слешем ставьте обратный слэш \
Какого вида URL? Скиньте пример.
У меня ощущение, что вы создаете ЧПУ, а .htaccess не настроен (или его вовсе нет)
А у вас тут вариантов немного. Статика же, без БД и php, как я понимаю...
1. Сделать замену, как предложили во 2ом варианте. Единственное - вместо пхп я бы выбрал bash/sh или perl. (где-то там был пример)
2. Можно было бы написать JS, который бы сканировал документ на предмет внешних ссылок и добавлял бы noindex/nofollow, но поисковики вряд ли это переварят (хотя может я от жизни отстал)...
3. Сделать в htaccess редирект вида "path/page.html > file.php?page=path/page", в file.php подключать страницу, предварительно фильтруя внешние URL через регулярки (url > goto.php?url). Редирект сделать в качестве php-скрипта.
Не совсем разумно, ресурсоемкая операция (я о подключении страниц), быстродействие напрямую зависит от размера подключаемых страниц.
Окай. Спасибо, май бэд, признаю.
Даже оправдываться не буду:) Разнесли в щепки:)
Ну если учитывать тот факт, что мы говорим о разных вещах, а вы невнимательно читаете - да, довольно просто.
Речь о кнопках твиттера, используемых на сторонних сайтах. Поделиться > Twitter.
И да, там GET-запрос.
У Твиттера, если брать его за пример, все работает чуточку иначе.
При клике по кнопке "твитнуть" вы передаете их скрипту 4 GET-параметра, это original referrer, text, url и via. Из них формируется твит. Если пользователь не залогинен - ему предлагается авторизоваться. Попап-окно разве что-то передает родительскому?
И количество блоков, разумеется, динамическое? Решение через JS допускается? :)
Допустим, обратиться к javascript-функции родительского окна мы можем таким образом:
window.opener.function(arg);
Где, соответственно, function - функция, а arg - аргумент. В качестве аргумента есть возможность передать результат аутентификации (успех/неудача).
Но вы же наверняка понимаете, что это небезопасно в случае с авторизацией, м?