你的重写规则看起来几乎确定。
首先确保您的.htaccess文件在您的文档根(与index.php相同的位置),否则它只会影响它所在的子文件夹(以及递归的任何子文件夹)。
接下来对您的规则稍作更改,看起来像:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
现在你只是匹配。它是任何字符的一个实例,你至少需要。*来匹配任何字符的任何数量的实例。
如果你想把整个shebang安装在一个子目录下,比如/ mvc /或者/ framework /,最简单的做法就是稍微修改一下重写规则来考虑。
RewriteRule ^(.*)$ /mvc/index.php?path=$1 [NC,L,QSA]
并确保您的index.php在该文件夹中,而.htaccess文件在文档根目录中。
$ path变量将包含假目录结构,因此/ mvc / module / test作为实例,然后您可以在index.php中使用它来确定要执行的控制器和操作。
标志:
NC =无案例(不区分大小写,不是真正必要的,因为模式中没有字符)
L =最后(它会停止重写后,这个重写,所以确保它是你的列表中的最后一个重写)
QSA = Query String Apend,以防万一你想要保留并传递给index.php的东西像like = penguins。