Я знаю, что этот вопрос мог быть дублирован или на него уже давали ответы, но я читал сайт apache.org и видел много других похожих ответов, и пока не могу найти правильного решения своей проблемы, поскольку я новичок в .htaccess и apache.
Для простоты предположим, что URL моего сайта: https://www.example.com
Главная страница - index.php
, и есть форма для отправки с 3 элементами выбора / выпадающих меню с именами: sp
, ar
и in
. sp
является обязательным (пользователь должен ввести значение), ar
и in
являются необязательными.
Когда я отправляю форму, файл results.php
выполняется. Когда все 3 раскрывающихся списка имеют значения, форма отправляемого URL-адреса:
1) https://www.example.com/results.php?sp=textvalue1&ar=textvalue2&in=textvalue3
Кроме того, в зависимости от того, имеют ли значения ar
и in
(или не имеют), другие возможные формы URL:
2) https://www.example.com/results.php?sp=textvalue1&ar=&in=
3) https://www.example.com/results.php?sp=textvalue1&ar=textvalue2&in=
4) https://www.example.com/results.php?sp=textvalue1&ar=&in=textvalue3
Я хочу преобразовать эти "уродливые" URL-адреса в оптимизированные для SEO URL-адреса.
Для случая 1 (все 3 раскрывающихся списка имеют значения) я хотел бы отправить форму и увидеть в поле URL моего браузера:
(case 1) https://www.example.com/textvalue1/textvalue2/textvalue3
и получите те же результаты (важно)!
Точно так же я хочу, чтобы другие оптимизированные для SEO URL были:
(case 2) https://www.example.com/textvalue1
(case 3) https://www.example.com/textvalue1/textvalue2
(case 4) https://www.example.com/textvalue1/textvalue3
Я предполагаю, что мне нужно сделать 2 вещи: во-первых, преобразовать уродливый URL-адрес в SEO-ориентированный URL-адрес и, во-вторых, обработать новый SEO-дружественный URL-адрес, как если бы он был старым уродливым.
До сих пор я пробовал следующие команды в моем файле .htaccess
для случая 2, но ничего не произошло:
Options +FollowSymlinks -Indexes -MultiViews
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/results\.php\?sp=([a-zA-Z]+)\s [NC]
RewriteRule ^ /%1? [R=302,L]
RewriteRule ^/([[a-zA-Z]]+)$ /results.php?sp=$1 [L]