301使用seo友好重写时,仅在特定URL上重定向

时间:2012-03-22 12:05:52

标签: .htaccess redirect 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-us(这很棒),并且/ quality也会重定向到/ about-us(这是正确的)。但是,去/ nhs或/学校(例如)会给出404.为什么会这样?

任何帮助将不胜感激。

[编辑]

删除[L]并开始工作。感谢

1 个答案:

答案 0 :(得分:0)

我认为这可能是因为你的RewriteRule ^(.*)$ index.php/$1 [L]有[L]标志(这意味着最后一次。)。

如果满足第一条规则RewriteRule ^(.*)$ index.php/$1 [L]的条件,Apache将停止执行其他规则。

尝试删除[L]