Перенаправление htaccess с использованием динамических URL
У меня есть файл.htaccess, который делает много перенаправления. Некоторые из моих перенаправлений не работают в части mod_rewrite. Я хочу, чтобы эти перенаправления работали так:
package_listing.php?package-type=fly-snooze-cruise => /fly-snooze-cruise
package_listing.php?package-type=fly-snooze-cruise&airport=orlando-airport => /fly-snooze-cruise/orlando-airport
package_listing.php?package-type=fly-snooze-cruise&airport=orlando-sanford-airport => /fly-snooze-cruise/orlando-sanford-airport
package_listing.php?package-type=fly-snooze-cruise&airport=melbourne-airport => /fly-snooze-cruise/melbourne-airport
package_listing.php?package-type=snooze-park-cruise => /snooze-park-cruise
Что я пробовал до сих пор:
RewriteRule ^package_listing.php?package-type=(.*)$ /$1 [L,R=301]
RewriteRule ^package_listing.php?package-type=(.*)$&airport=(.*)$ /$1/$2 [L,R=301]
RewriteRule ^package_listing.php?package-type=([A-Za-z/]*)$ /$1 [L,R=301]
RewriteRule ^package_listing.php?package-type=([A-Za-z/]*)$&airport=([A-Za-z/]*)$ /$1/$2 [L,R=301]
RewriteRule ^package_listing.php?package-type=snooze-park-cruise$ /snooze-park-cruise [L,R=301]
RewriteRule ^package_listing.php?package-type=fly-snooze-cruise$ /fly-snooze-cruise [L,R=301]
RewriteRule ^package_listing.php?package-type=fly-snooze-cruise&airport=orlando-airport$ /fly-snooze-cruise/orlando-airport [L,R=301]
RewriteRule ^package_listing.php?package-type=fly-snooze-cruise&airport=orlando-sanford-airport$ /fly-snooze-cruise/orlando-sanford-airport [L,R=301]
RewriteRule ^package_listing.php?package-type=fly-snooze-cruise&airport=melbourne-airport$ /fly-snooze-cruise/melbourne-airport [L,R=301]
package-type
а также airport
Обе переменные, которые определяют динамический контент на странице, которая будет загружена.
1 ответ
Решение
Вам понадобятся 2 правила перенаправления:
RewriteEngine On
RewriteCond %{THE_REQUEST} /package_listing\.php\?package-type=([^\s&]+)\s [NC]
RewriteRule ^ /%1? [R=302,L,NE]
RewriteCond %{THE_REQUEST} /package_listing\.php\?package-type=([^\s&]+)&airport=([^\s&]+)\s [NC]
RewriteRule ^ /%1/%2? [R=302,L,NE]