2013-08-29 2 views
1

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

Примером может быть:

RedirectMatch 301 /faqs/general(.*) /general-faq/$1 

это перенаправляет в указанную папку правильно, но это:

RedirectMatch 301 /faqs/program(.*) /general-faq/$1 

Это перенаправляет к папке/программы/

Что такое сделка ?

Я использую Wordpress как CMS, я включил эти переадресации в нужное место в файле htaccess. Переадресация, которая закомментирована, - это те, которые нарушены.

# BEGIN Wordpress 

# WPhtc: Begin Custom htaccess 
Options +FollowSymLinks 

RewriteRule ^academics/courses.*$ http://www.bridgesboysacademy.com/course-curriculum/ [R=301,L] 

RedirectMatch 301 /emotional(.*) /emotional-growth/$1 

RedirectMatch 301 /emotional/family(.*) /family-participation/$1 

RedirectMatch 301 /emotional/community(.*) /community-meetings/$1 

RedirectMatch 301 /campus/athletics(.*) /sports-recreation/$1 

RedirectMatch 301 /emotional/adventure(.*) /outdoor-adventure/$1 

#RedirectMatch 301 /emotional/addiction(.*) /addiction-studies/$1 

RedirectMatch 301 /student(.*) /student-profile/$1 

#RedirectMatch 301 /student/questionnaire(.*) /student-profile/$1 

RedirectMatch 301 /campus(.*) /campus-life/$1 

#RedirectMatch 301 /campus/schedule(.*) /daily-schedule/$1 

RedirectMatch 301 /faqs(.*) /general-faq/$1 

RedirectMatch 301 /faqs/general(.*) /general-faq/$1 

#RedirectMatch 301 /faqs/program(.*) /general-faq/$1 

RedirectMatch 301 /faqs/academic(.*) /general-faq/$1 

RedirectMatch 301 /campus(.*) /campus-life/$1 

#RedirectMatch 301 /admissions(.*) /admissions-faq$1 
#RedirectMatch 301 /admissions/application(.*) /admissions-faq$1 
#RedirectMatch 301 /admissions/testimonials(.*) /admissions-faq/$1 
#RedirectMatch 301 /admissions/fees(.*) /admissions-faq/$1 
#RedirectMatch 301 /admissions/financial(.*) /admissions-faq/$1 
#RedirectMatch 301 /faqs/tuition(.*) /admissions-faq/$1 

RedirectMatch 301 /about/facts(.*) /about$1 

RedirectMatch 301 /about/accreditations(.*) /accreditation$1 

RedirectMatch 301 /about/staff(.*) /staff$1 

RedirectMatch 301 /academics/bios(.*) /staff$1 

RedirectMatch 301 /about/careers(.*) /career-opportunities$1 

RedirectMatch 301 /parents(.*) https://crm.bestnotes.com/portal/bridgesacademy$1 
# WPhtc: End Custom htaccess 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END Wordpress 
+0

Вы уверены, что нет других перенаправлений на месте, которые попадают в первую очередь, может быть, WordPress видит это как тег или страницу и т. Д. –

+1

Ваше правило может противоречить другому правилу, которое приводит к неправильному перенаправлять и не видеть остальную часть вашего файла .htaccess, это сложно сказать. – Prix

+0

дайте нам пример ссылки и перенаправления, на которые вы хотите перенаправить, и мы поможем вам –

ответ

0

Вы получили эти переадресовывает назад:

RedirectMatch 301 /faqs(.*) /general-faq/$1 

RedirectMatch 301 /faqs/general(.*) /general-faq/$1 

#RedirectMatch 301 /faqs/program(.*) /general-faq/$1 

RedirectMatch 301 /faqs/academic(.*) /general-faq/$1 

Первый редирект будет соответствовать ничего другого 3 не делает, так что по сути, последний 3 ничего не делать. Вы должны поместить наиболее общей (первый) в конце:

RedirectMatch 301 ^/faqs/general(.*) /general-faq/$1 
RedirectMatch 301 ^/faqs/program(.*) /general-faq/$1 
RedirectMatch 301 ^/faqs/academic(.*) /general-faq/$1 
RedirectMatch 301 ^/faqs/(.*) /general-faq/$1 

Вы также должны добавить ^ к началу вашей модели. Таким образом, он не будет случайным образом сопоставляться с чем-то, что дальше по пути, например. /something/faqs/something/

Кроме того, вы должны изменить «эмоциональные» те, чтобы вести себя так же: что я добавил / в конце «эмоциональный» в последнем редиректа

RedirectMatch 301 ^/emotional/family(.*) /family-participation/$1 
RedirectMatch 301 ^/emotional/community(.*) /community-meetings/$1 
RedirectMatch 301 ^/emotional/adventure(.*) /outdoor-adventure/$1 
RedirectMatch 301 ^/emotional/(.*) /emotional-growth/$1 

Примечание. Вы должны сделать то же самое с несколькими другими переадресовывает:

RedirectMatch 301 ^/student/(.*) /student-profile/$1 
RedirectMatch 301 ^/campus/(.*) /campus-life/$1 

Вы также должны добавить ^ к началу вашей модели.

+0

Я очень ценю вашу помощь! – adoboda

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