2013-04-06 2 views
5

У меня есть около 300 перенаправляет в следующем форматебез учета регистра Htaccess 301

Redirect 301 /post/My-Blog-Post.aspx https://www.example.com/blog/a-new-post/

Это прекрасно работает за исключением того, переадресовывает чувствительны к регистру и собирается /post/my-blog-post.aspx не перенаправляет.

Не существует шаблона для старого URL-адреса для нового URL-адреса, поэтому это, вероятно, должно быть флагом для каждого перенаправления.

Как я могу получить URL-адрес для перенаправления независимо от того?

+1

Почему это было закрыто как вне темы? – developdaly

+0

Потому что тема * .htaccess * без REGEX отключена и принадлежит: http://serverfault.com – 5ervant

ответ

7

Не думаю, что есть способ сделать регистр Redirect (часть mod_alias) нечувствительным к регистру, но есть флаг mod_rewrite, который вы можете использовать. Вы должны изменить все ваши переадресовывает от этого:

Redirect 301 /post/My-Blog-Post.aspx https://www.example.com/blog/a-new-post/ 

к:

RewriteRule ^/?post/My-Blog-Post.aspx$ https://www.example.com/blog/a-new-post/ [L,R=301,NC] 

NC Обратите внимание на флаг, не означает "нет дела". Это будет соответствовать любому URI, который выглядит как /post/my-blog-post.aspx и игнорирует регистр, и перенаправляет его на https://www.example.com/blog/a-new-post/.

+0

Нет кубиков - тот же результат. – developdaly

+0

Добавление флага NC работало на пару разных сайтов для меня, один сервер под управлением Apache 2.2 и другой на 2.4. Проверьте документацию Apache, это согласуется с ответом Джона Лина: https://httpd.apache.org/docs/current/rewrite/flags.html#flag_nc – staypuftman

1

Однако, если вы хотите сделать «My-блог-пост» переменной «а-нового столб», я имею в виду, если вы хотите /post/My-Blog-Post.aspx чтобы быть перенаправлены в /блог/а-новый столб/ либо /пост/это .aspx в /блог/это/ или /пост/, что .aspx в /блог/, что/ или даже /пост/ничего .aspx в /блог/ничего/, вы можете попробовать использовать этот код в вас .htaccess скрытый файл:

Options +FollowSymlinks 
RewriteEngine on 

RewriteRule ^post/([a-z0-9-_]+).aspx$ /blog/$1/ [R=301,NC] 
Смежные вопросы