htaccess重写简化的url结构导致无限重定向

时间:2018-02-07 15:49:12

标签: php .htaccess redirect mod-rewrite

我正在制作一个非常小的项目,而通常我会使用一个PHP框架为我处理这个问题,我不想要一个框架的不必要的混乱。我有这个结构:

-> assets
   -> css/etc
-> pages
   -> api.htm
   -> scramble.htm
   -> unscramble.htm
-> structure
   -> header.htm
   -> footer.htm
-> index.php

所有这些文件都在目录中,example.com/example/scrambling/

因此,要访问我的文件,通常我必须访问example.com/example/scrambing/pages/api.htm例如 - 但我希望通过index.php处理所有页面加载。

我的目标是只需访问example.com/example/scrambling/api

即可访问上述文件

我发现了一些关于如何用.htaccess实现这个问题的问题,但是没有一个问题适合我。它们总是导致无限循环,并被重定向到/example/scrambling/pages/index/pages/index/pages/index/pages/... - 我不确定如何解决这个问题。

我当前的.htaccess文件是这样的:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?f=$1

我试图通过echo $_REQUEST['f'];

访问网页名称

如何让.htaccess文件无法无限重定向?

1 个答案:

答案 0 :(得分:1)

试试这个,这肯定会奏效。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^([^/]+)$ index.php?f=$1 [L,QSA]