我正在使用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
实际上不是服务器上的目录。我只想在页面名称之前插入“页面”。
答案 0 :(得分:0)
尝试在RewriteEngine on
之后立即添加此内容:
RewriteCond %{REQUEST_URI} !=/
RewriteCond %{REQUEST_URI} !^/pages/
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule (.*) /pages/$1 [R,L]