Можно ли использовать подстановочные знаки в файле .htaccess для массовых перемещений?

StackOverflow https://stackoverflow.com/questions/1542066

Вопрос

Я переделываю свой веб-сайт, собираюсь переименовать множество каталогов, и мне нужен простой способ написать перенаправления .htaccess для всех этих страниц.Я надеюсь на решение, которое не будет включать очень длинный список файлов.Мой файл .htaccess и так огромен.

Это было полезно?

Решение

Вы можете использовать mod_alias или mod_rewrite для вашего перенаправления.mod_rewrite работает с регулярными выражениями, а mod_alias может работать как с регулярными выражениями, так и с префиксами путей.

Вот несколько примеров, когда вы хотите переписать /foo/… к /bar/…:

# mod_alias
# path prefix
Redirect 301 /foo /bar
# regular expression
RedirectMatch 301 ^/foo/(.*) /bar/$1

# mod_rewrite
RewriteEngine on
RewriteRule ^foo/(.*) /bar/$1 [L,R=301]

Обратите внимание, что mod_alias и mod_rewrite предъявляют разные требования к шаблонам регулярных выражений.mod_alias всегда требует полного URL-пути.Но с mod_rewrite это зависит от того, используете ли вы его в файле .htaccess или в разделе конфигурации сервера/виртуального хоста.В файле .htaccess вам необходимо написать шаблон без префикса пути для каждого каталога (в случае корня документа просто /, в случае /quux/ его /quux/).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top