Я пытаюсь создать форму поиска для своего веб-сайта с дружественными URL для поисковых систем.
У меня есть следующий код формы на каждой странице моего сайта:
<form class="form" method="get" id="searchform" action="searchrd">
Поиск
Вот также мой htaccess файл: `
RewriteCond %{REQUEST_URI} searchrd$
RewriteCond %{QUERY_STRING} ^query=([^&]+)$
RewriteRule ^([^&]+)$ /results/%1? [R=301,L]
RewriteRule ^/?results/([^&]+)?$ results.php?query=$1 [NC]
Моя проблема заключается в следующем:
Например, когда я захожу на домашнюю страницу и начинаю свой поиск с помощью {search-term1}, я попадаю на http: // websitename.com/results/advansearch-term1}
Нет проблем с этим шагом
Но если я попробую выполнить поиск на странице результатов с {search-term2}, я получу этот URL-адрес
Мой вопрос, как я могу получить этот URL http://websitename.com/results/{search-term2} для второго поиска, даже если я делаю поиск на странице результатов. Я уже искал часы и модифицировал флаги, правила и условия, но ничего не дало мне того, что я хотел.
Используйте абсолютный путь в вашем действии формы:
<form class="form" method="get" id="searchform" action="/searchrd">
И изменить ваши правила следующим образом:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^query=([^&]+)$ [NC]
RewriteRule ^searchrd/?$ /results/%1? [R=301,L,NC,NE]
RewriteRule ^/?results/([^&]+)?$ results.php?query=$1 [NC,L,QSA]
Других решений пока нет …