我有一个小问题,可能很容易解决,但我不知道怎么做。我具有以下文件夹结构:
index.php文件如下:
if(isset($_GET['page'])){
require_once($_GET['page'].'.php');
}
我对子文件夹的HTACCESS:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^([\w-]+)/?$ index.php?page=$1 [QSA,L]
我试图在index.php中回显我的$ _GET ['page']变量,并且每当我输入如下内容时:www.domain.com/cms/r
它给了我$_GET['page'] = r
。但是,如果$ _GET变量作为文件存在,则会出现404错误:www.domain.com/cms/content
,该错误应该只显示我的content.php文件。
我到底在做什么错?感谢所有帮助:)
编辑:
看来我可以使$_GET
正常工作,但是它忽略了是否存在名为$_GET
的文件。 www.domain.com/fluidify/content无法正常工作,因为文件夹中有一个名为content.php的文件,但是www.domain.com/fluidify/testget给出了testget
作为输出。
答案 0 :(得分:0)
如果您想拥有SEO友好的URL,则应使用类似这样的内容-无论URL是否匹配现有文件,这都会将所有内容重定向到您的路由脚本。
RewriteEngine On
RewriteRule ^(.*)$ index.php?page=$1 [QSA,L]