.htaccess除非索引,否则重定向到/ pages

时间:2018-08-07 18:26:05

标签: php apache .htaccess routing altorouter

我正在使用PHP路由器(AltoRouter),该路由器允许我以各种方式定义路由,但不执行任何重定向。

我希望我的“ /”路线保持原状。

但是,如果有人去了'/'以外的地方,我有一个通配符路由,该通配符路由会获取该路由的名称,找到一个树枝文件,并根据名称进行渲染。因此,“ / about”将定位about.twig并进行渲染。

我想要实现的是,如果有人去“ / about”或“ / contact”等,那么他们将被重新路由到“ / pages / about”,“ / pages / contact”等,但是如果他们直接转到“ / pages / about”,则无需重新路由。

我当前的.htaccess文件如下所示:

RewriteEngine on
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

不幸的是,我做了很多搜索,但并没有真正找到如何执行特定的条件重定向/重定向。尤其是没有一个人只留下根'/'。

P.s。 pages实际上不是服务器上的目录。我只想在页面名称之前插入“页面”。

1 个答案:

答案 0 :(得分:0)

尝试在RewriteEngine on之后立即添加此内容:

RewriteCond %{REQUEST_URI} !=/
RewriteCond %{REQUEST_URI} !^/pages/
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule (.*) /pages/$1 [R,L]