Перенаправление Apache 301 сбой при использовании ПОЛУЧАЕТ параметры, такой как? вздор =

Используя плагин Создателя Элементов DOM (мой фаворит):

$.create('option', {'value': 'val'}, 'myText').appendTo('#mySelect');

Используя Option конструктор (не уверенный в поддержке браузера):

$(new Option('myText', 'val')).appendTo('#mySelect');

Используя document.createElement (предотвращение дополнительного HTML парсинга работы с $("")):

$('#mySelect').append($(document.createElement("option")).
                        attr("value","val").text("myText"));

18
задан Martijn Heemels 11 August 2009 в 14:12
поделиться

3 ответа

Хотя рассуждения ответа Гамбо были правильными, я не мог заставить его RewriteRule работать.

Добавление еще одного RewriteCond сделало это. Следующее было протестировано и работает нормально.

RewriteCond %{REQUEST_URI} /nl/index.php$
RewriteCond %{QUERY_STRING} ^mID=24511&subID=0$
RewriteRule ^.*$ http://www.example.com/solutions/printsolutions.html [L,R=301]
16
ответ дан 30 November 2019 в 07:08
поделиться

Перенаправление работает только с URL-путями:

Старый URL-путь является чувствительным к регистру (% -декодированным) путем, начинающимся с косая черта. […]

Таким образом, URL-запрос (часть после первого ? до первого # после) не проверяется.

Но вы можете использовать mod_rewrite для этого:

RewriteCond %{QUERY_STRING} ^mID=24511&subID=0$
RewriteRule ^nl/index\.php$ http://www.example.com/solutions/printsolutions.html [L,R=301]
RewriteCond %{QUERY_STRING} ^mID=24512&subID=0$
RewriteRule ^nl/index\.php$ http://www.example.com/support/koppeling-met-omgeving.html [L,R=301]
12
ответ дан 30 November 2019 в 07:08
поделиться

Согласен с ответами Гамбо и Мартейна ... но:

Опечатка в ответе Мартейна, должно быть "^", чтобы начать регулярное выражение для условия REQUEST_URI:

RewriteCond %{REQUEST_URI} ^/nl/index.php$

Я тоже мог заставить работать только Martijn, но не Gumbo, там, где был мой файл .htaccess.

Кроме того, если вы не хотите, чтобы строка параметров передавалась при перезаписи, вам следует добавить знак "?" в конце URL-адреса:

RewriteRule ^.*$ http://www.example.com/solutions/printsolutions.html? [L,R=301]

В противном случае, следуя коду Martijn, он будет читать «если ваш URL-адрес /nl/index.php?mID=24511&subID=0, тогда перенаправьте на http://www.example.com /solutions/printsolutions.html?mID=24511& Если вы хотите перенаправить человека на новую страницу и хотите "красивые URL-адреса", тогда удаление строки параметра предпочтительнее, поэтому вставьте знак "?" в конце целевого URL.

Если вы хотите перенаправить человека на новую страницу и хотите получить "красивые URL-адреса", тогда удаление строки параметра предпочтительнее, поэтому вставьте знак "?" в конце целевого URL.

12
ответ дан 30 November 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: