我想永久重定向
www.example.com/event/title-goes-here
到www.example.com/event/jazz/title-goes-here
在我的htaccess文件正则表达式。
我目前有:
RewriteEngine on
RewriteRule ^event/(.*)$ http://www.example.com/event/jazz/$1 [R=301,L]
但是,这会导致一个无限循环(它去example.com/event/jazz/jazz/jazz/jazz
等),因为/事件/部分是相同的。
我如何使用重写规则,使这个重写,而且在一种方式,它考虑到,人们可以去example.com/event/title-goes-here
和example.com/event/title-goes-here/
(因此以斜线),同时仍然正确地使重定向。
编辑/ UPDATE
基于anubhava的回答我的完整的.htaccess文件现在看起来是这样(忘了说也有上的index.php重写):
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
RewriteRule ^event/([^/]+)/?$ /event/jazz/$1 [R=301,L,NC,NE]
还忘了提我使用笨,在我routing.php有下列路由选项(不知道是不是这个问题)。 认为这是一个纯粹的.htaccess的事情,但是当我想到我盘算了一下路由文件也许这个食堂与重写?
$route['event/jazz/(:any)'] = 'event/view/$1';
$route['(:any)'] = 'pages/view/$1';