Как переписать URL в htaccess - PullRequest
       2

Как переписать URL в htaccess

0 голосов
/ 14 апреля 2019

У меня есть URL с двумя параметрами запроса, например, /skills/keywords/list.php?industry=retail&q=analyst, и я хотел бы перенаправить эти URL-адреса на /list-of-%2-skills-in-%1.

Я попробовал приведенный ниже код, который просматривает запросы «промышленность» и «q», чтобы создать целевой URL: /list-of-%2-skills-in-%1

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^industry=(.*)&q=(.*)$ [NC]
RewriteRule ^skills/keywords/list\.php$ /list-of-%2-skills-in-%1? [L,R=301]

Я ожидаю: /skills/keywords/list.php?industry=retail&q=analyst перенаправить на /list-of-analyst-skills-in-retail, что происходит, но у меня 404 содержимого не найдено. Может кто-нибудь указать мне правильное направление, пожалуйста?

1 Ответ

0 голосов
/ 14 апреля 2019

Это потому, что целевой путь /list-of-%2-skills-in-%1 не существует на вашем сервере.Вам нужно переписать этот путь к существующему файлу /skills/keywords/list.php?industry=retail&q=analyst.

RewriteEngine On
RewriteBase /
#redirect /skills/keywords/list.php?industry=foo&q=bar
#to /list-of-bar-skills-in-foo
RewriteCond %{THE_REQUEST} /skills/keywords/list\.php\?industry=([^&]*)&q=([^\s]+) [NC]
RewriteRule ^skills/keywords/list\.php$ /list-of-%2-skills-in-%1? [L,R=301]
#rewrite new URL to the old one
RewriteRule ^list-of-([^-]+)-skills-in-([^-]+)/?$ /skills/keywords/list.php?industry=$1&q=$2 [NC,L]
...