重写 GET 变量 .htaccess 的规则


Rewrite Rule for GET variables .htaccess

好吧,我在创建.htaccess时遇到了麻烦,无论如何,我的菜单中有类别,例如test1test2test3文件夹的名称,我试图做的是将URL的第二个参数指向index.php,例如http://myapp/test1我希望能够从index.php拥有$_GET['cat'] = test1等等。
这是我到目前为止尝试过但没有奏效的方法:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)/$ index.php?cat=$1 [NC,L]

对此有任何帮助吗?非常感谢。

尝试从重写规则中删除预告片/字符。 ^(.*)/$匹配以/结尾的任何 URL,例如 http://myapp/test/ 。您可能正在寻找^(.*)$或剥离任何前导斜杠^/(.*)$。请注意,如果index.php是通过 f.ex 直接访问的。 http://myapp/index.php这也将匹配并重写为http://myapp/index.php?cat=index.php并且任何图像都不能直接访问。因此,您可能希望添加一些RewriteCond,首先检查请求的 URL 是否是现有文件,RewriteCond %{REQUEST_FILENAME} !-f RedirectRule重写 URL。