2009-10-09 9 views
0

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

ответ

0

Вы можете использовать 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/).

+0

Я не могу заставить форматирование работать, извините. Я сделал что-то неправильно при использовании выше. Я написал ... Redirect 301/fantasy/v/fantasy/мнения RedirectMatch 301 ^/fantasy/v /(.*)/fantasy/мнения/$ 1 , но это вызвало ошибку внутреннего сервера для всего моего сайта. Затем я попробовал это ... Redirect 301 http://www.xecu.net/fantasy/v http://www.xecu.net/fantasy/opinions RedirectMatch 301 http://www.xecu.net/ fantasy/v (. *) http://www.xecu.net/fantasy/opinions$1 Это не вызвало ошибку, но не сработало. Что я сделал не так? –

 Смежные вопросы

  • Нет связанных вопросов^_^