我有一个从很多地方链接到的新网站,但站点地图的结构已经改变。我需要将一些旧网址重定向到相关的新网址。
该网站还需要保持其友好的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]并开始工作。感谢
答案 0 :(得分:0)
我认为这可能是因为你的RewriteRule ^(.*)$ index.php/$1 [L]
有[L]标志(这意味着最后一次。)。
如果满足第一条规则RewriteRule ^(.*)$ index.php/$1 [L]
的条件,Apache将停止执行其他规则。
尝试删除[L]