- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Подскажите, пожалуйста, новичку как сделать следующую вешь в htaccess:
есть сайт (скрипт), нечто вроде classifieds, в котором новые страницы генерируютсются след.образом http://www.domain.com/info.php?id=1, http://www.domain.com/info.php?id=48 ну и так далее, по возрастающей. Как привести адреса этих станиц, например, к виду www.domain.com/listing1.html ? Поскольку новые страницы добавляются/удаляются постоянно, как правильно написать общий Rewrite для всех страниц?
Вот так не работает:
RewriteRule ^listing-([0-9]*).html info.php?id=$1
Вот, еще нашла , как генерируются адреса страниц в каталоге :
$ListingTable .= "<tr onMouseOver=\"this.style.background='#E2E2E2'; this.style.cursor='hand'\" onMouseOut=\"this.style.background='white'\" onClick=\"window.open('info.php?id=$a1[ListingID]', '_top')\">\n\t";
Как правильно изменить 'info.php?id=$a1[ListingID]' на "правильный адрес", чтобы в каталоге генерировались ссылки вида www.domain.com/listing1.html, а не http://www.domain.com/info.php?id=1, как сейчас?
Плиииз....
1. .htaccess такого содержания работает:
RewriteEngine on
RewriteBase /
RewriteRule ^listing-([0-9]*).html$ index.php?id=$1
Обратите внимание на конечный якорь ($) в регэкспе. Вообще регэкспы у этого модуля какие-то достаточно глючные, обычно если что-то не работает - не работает шаблон.
2. Не совсем понял. Просто берете и заменяете window.open('info.php?id=$a1[ListingID] на window.open('listing-$a1[ListingID].html
PS. А по моему топику про мод реврайт совсем никто ничего не знает? :(
Коля Дубр
Спасибо огромное!
Про якорь-то я и забыла...
поэтому и заменить window.open('info.php?id=$a1[ListingID] на window.open('listing-$a1[ListingID].html не получалось - не работала конструкция.
А как быть, если число параметров GET-запроса непостоянное? То есть некоторые значения необязательны, а некоторые могут повторяться (например при submit нескольких checkbox с одинаковым именем или пунктов списка с множественным выделением)?
D.O., а шут его знает =) Честно говоря, просто не приходилось сталкиваться. Наверно можно написать более хитрое регулярное выражение. А можно просто несколько правил задать.
D.O., а шут его знает =) Честно говоря, просто не приходилось сталкиваться. Наверно можно написать более хитрое регулярное выражение. А можно просто несколько правил задать.
Я пробовал 2 правила вместо одного:
RewriteRule ^page1/q-(.*)$ cgi-bin/page1.pl?q=$1
RewriteRule ^/what-(.*)$ &what=$1
Для запроса вида
http://localhost/page1/q-str/what-1
чтобы превратить его в
http://localhost/cgi-bin/page1.pl?q=str?what=1
Не работает. Где тут ошибка?
Ну, именно в этом - во втором знаке вопроса вместо амперсанда... ;-) http://localhost/cgi-bin/page1.pl?q=str?what=1
И вообще-то, у вас тут два отдельных правила. Такое, кажется, и не сработает.
Ну, именно в этом - во втором знаке вопроса вместо амперсанда... ;-) http://localhost/cgi-bin/page1.pl?q=str?what=1
Просто опечатка при наборе сообщения.
И вообще-то, у вас тут два отдельных правила. Такое, кажется, и не сработает.
То есть, проблема с переменным числом параметров неразрешима?
D.O., да уж.. Ваши мытарства не знают предела, а советы советчиков не блещут.. (((
потратил 5 минут на поисковик.. вот решение:
http://forum.sources.ru/index.php?showtopic=62609&st=15
найдено по запросу "Rewrite 2 параметра" в гугле (выдача "Я" меня что-то перестала вдохновлять на поиск в нем..)
P.S. обязательно почитай доку ссылка на которую есть в том форуме, очень познавательно, хоть и на английском..
Я пока опробовал такое решение и пока остановился на нём:
Текст .htaccess:
============
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteRule ^([^/]*)/(.*)$ cgi-bin/sub/$1.pl?$2
============
В этом случае при вызове
http://localhost/script2/p1-v1/p2-v2
будет вызываться
http://localhost/cgi-bin/sub/script2.pl?p1-v1/p2-v2
Здесь "script2" может быть любым, главное чтобы имя совпадало с именем существующего скрипта с суффиксом ".pl".
Строка "p1-v1/p2-v2" будет доступна в переменной $ENV{QUERY_STRING}.
Из неё и доставать значения параметров (пары разделяются "/" вместо "&", а параметры и значения разделяются "-" вместо "=").
Число и порядок параметров могут быть любые (для обработки параметров), но порядок лучше соблюдать единый (для поисковиков).
Скрипты можно будет вызывать и по старым путям, и по новым.
Подскажите.
Первый раз переписываю mod-rewrite. Вроде всё сделал, куча примеров, написал:
RewriteEngine on
RewriteBase /
RewriteRule ^cid-([0-9]*).html$ ?cid=$1
страница вида www.111.ru/kolobok/?cid=23
Не работает, а в чём ошибка не пойму... Пока плохо знаю про это.