- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Требуется решить тривиальную задачу: перенаправление запроса типа search.html?q=111 на index.php?mode=search&q=111
Пробовал варианты:
RewriteCond %{REQUEST_URI} /search.html [NC]
RewriteRule ^/search.html?q=([.]+) /index.php?mode=search&q=$1 [T=application/x-httpd-cgi,L]
RewriteCond %{QUERY_STRING} q=(.+) [NC]
RewriteRule ^search.html /index.php?mode=search&q=%1 [T=application/x-httpd-cgi,L]
RewriteCond %{QUERY_STRING} q=(.*) [NC]
RewriteRule ^search.html /index.php?mode=search&q=%1 [T=application/x-httpd-cgi,L]
RewriteCond %{REQUEST_URI} ^search.html [NC]
RewriteRule ^search.html?q=(.*) /index.php?mode=search&q=$1 [T=application/x-httpd-php]
и т.д. Практически во всех случаях выдается ошибка "Not Found. The requested URL /search.html was not found on this server". При этом остальные редиректы работают.
В чем может быть проблема? И почему не работают приведенные варианты?
Попробуй так:
RewriteCond %{QUERY_STRING} ^q=([0-9]+)$RewriteRule ^search\.html$ index.php?mode=search&q=%1 [L]
Попробуй так:
RewriteCond %{QUERY_STRING} ^q=([0-9]+)$RewriteRule ^search\.html$ index.php?mode=search&q=%1 [L]
Not Found
The requested URL /search.html was not found on this server.
Тогда либо mod_rewrite не подключен, либо не существует файл index.php
И создай файл index.php с содержанием <?php print_r($_GET); ?> и положи его в тот же каталог где и .htaccess.
Тогда либо mod_rewrite не подключен, либо не существует файл index.php
Для примера, этот кусок отрабатывает отлично:
RewriteCond %{REQUEST_URI} (\sitemap.html)$ [NC]
RewriteRule ^(.*)$ /index.php?mode=sitemap [T=application/x-httpd-php]
Файлы .htaccess и index.php находятся в одном каталоге?
Файлы .htaccess и index.php находятся в одном каталоге?
Да, конечно, в корне.
Да, конечно, в корне.
Тогда все должно работать в лучшем виде 😕 В .htaccess еще есть какие-нибудь директивы?
Тогда все должно работать в лучшем виде 😕 В .htaccess еще есть какие-нибудь директивы?
RewriteEngine on
Options FollowSymLinks
RewriteCond %{QUERY_STRING} ^q=([0-9]+)$
RewriteRule ^search\.html$ index.php?mode=search&q=%1 [L]
RewriteCond %{REQUEST_URI} ^([^,]+),i([^,]+),ci([^.]+).(.*)$ [NC]
RewriteRule ^([^,]+),i([^,]+),ci([^.]+).(.*)$ /index.php?mode=item&id=$2&ci=$3&t=$1 [T=application/x-httpd-php]
RewriteCond %{REQUEST_URI} ^([^,]+),ci([^,]+),pn([^.]+).(.*)$ [NC]
RewriteRule ^([^,]+),ci([^,]+),pn([^.]+).(.*)$ /index.php?mode=category&ci=$2&pn=$3&t=$1 [T=application/x-httpd-php]
RewriteCond %{REQUEST_URI} (\sitemap.html)$ [NC]
RewriteRule ^(.*)$ /index.php?mode=sitemap [T=application/x-httpd-php]
Остальные правила не влияют на это преобразование. Копаем дальше :)
Какой url запрашиваешь (полностью)?
И если есть доступ к логам mod_rewrite, то что в них пишется?
Какой url запрашиваешь (полностью)?
Гоняю в локале: http://localhost/search.html?query=432
И если есть доступ к логам mod_rewrite, то что в них пишется?
Не пишется :(
Не знаю, как настроить. Добавление директивы RewriteLog гонит ошибку... :(