301 перенаправление только на конкретный URL, при этом с помощью дружественной SEO переписать - PullRequest
0 голосов
/ 22 марта 2012

У меня есть новый сайт, на который ссылаются из многих мест, но структура карты сайта изменилась.Мне нужно перенаправить некоторые старые URL-адреса на соответствующий новый.

Сайт также должен сохранять SEO-дружественную запись URL-адреса.

У меня есть это в моем .htaccess:

<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine on
RewriteBase  /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f

RewriteCond %{REQUEST_URI} !^/(csr|quality|schools|project_management|third_sector|nhs|about)$


RewriteRule ^(.*)$ index.php/$1 [L]

RewriteRule ^(csr|quality|schools|project_management|third_sector|nhs|about)$ /about-us [L,R=301] 

</IfModule>

Переход к / about-перенаправлениям на / about-us (что здорово) и переход к / quality также перенаправляет на / about-us (что правильно).Однако, посещение / nhs или / школ (например) дает 404. Почему это?

Любая помощь будет оценена.

[EDIT]

Удалено [L] и это начало работать.Спасибо

1 Ответ

0 голосов
/ 22 марта 2012

Я думаю, что это, вероятно, потому что ваш RewriteRule ^(.*)$ index.php/$1 [L] имеет флаг [L] (что означает последний.).

Если выполнены условия для первого правила RewriteRule ^(.*)$ index.php/$1 [L] Apache прекратит выполнение других правил.

Попробуйте удалить [L]

...