Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当末尾没有反斜杠时,Mod rewrite会继续追加GET字符串_Php_.htaccess_Mod Rewrite_Mod - Fatal编程技术网

Php 当末尾没有反斜杠时,Mod rewrite会继续追加GET字符串

Php 当末尾没有反斜杠时,Mod rewrite会继续追加GET字符串,php,.htaccess,mod-rewrite,mod,Php,.htaccess,Mod Rewrite,Mod,根据重写规则,如果我输入的链接不是以反斜杠结尾的,则会在末尾追加GETstring 示例: localhost/forum/显示为localhost/forum/ localhost/forum显示为localhost/forum/?route=forum 添加一行RewriteCond%{REQUEST\u FILENAME}-d 因此,当现有目录指向添加一行RewriteCond%{REQUEST\u FILENAME}时,它不会做任何事情-d 因此,当一个现有目录指向时,它不会做任何事情,

根据重写规则,如果我输入的链接不是以反斜杠结尾的,则会在末尾追加
GET
string

示例:

localhost/forum/显示为localhost/forum/

localhost/forum显示为localhost/forum/?route=forum


添加一行
RewriteCond%{REQUEST\u FILENAME}-d


因此,当现有目录指向

添加一行
RewriteCond%{REQUEST\u FILENAME}时,它不会做任何事情-d


因此,当一个现有目录指向

时,它不会做任何事情,在您的示例中index.php去了哪里?“论坛”中的“f”是怎么变成“f”的?我不太了解mod_重写,所以我不知道如何回答这个问题。这个例子用文字说明了当我输入地址时会发生什么,而且地址在其他任何地方都没有被修改?“论坛”中的“f”是怎么变成“f”的?我不太了解mod_重写,所以我不知道如何回答这个问题。这个例子用文字说明了当我输入地址时会发生什么,而且地址在其他任何地方都没有修改。有一个问题,我正在做一个简单的MVC项目,每个目录都存在,模块使用的文件都相同。我个人甚至将MVC目录放在文档根目录之外。因为这些文件永远不应该被直接访问。除此之外,我认为当每个模块放置一个目录时,文档根会变得非常混乱。为什么不
/mvc/forum
至少限制混乱。好吧,让我们把所有模块移到别处,看看效果如何。我移动了所有模块,没有任何变化。然后我清空了.htaccess以查看发生了什么,链接仍然被重写,因为我从未接触过.htaccess。我在Chrome上打开了我的网站(当时使用的是Firefox),你猜怎么着?一切都按预期运行(当我用规则填充.htaccess时,首先返回了错误,它开始正常工作)。Firefox似乎与错误的重新路由有关。我想这是缓存。您不想在重写行之后使用[L]吗?有一个问题,我正在制作简单的MVC项目,每个目录都存在,并且模块使用的文件都相同。我个人甚至将MVC目录放在文档根目录之外。因为这些文件永远不应该被直接访问。除此之外,我认为当每个模块放置一个目录时,文档根会变得非常混乱。为什么不
/mvc/forum
至少限制混乱。好吧,让我们把所有模块移到别处,看看效果如何。我移动了所有模块,没有任何变化。然后我清空了.htaccess以查看发生了什么,链接仍然被重写,因为我从未接触过.htaccess。我在Chrome上打开了我的网站(当时使用的是Firefox),你猜怎么着?一切都按预期运行(当我用规则填充.htaccess时,首先返回了错误,它开始正常工作)。Firefox似乎与错误的重新路由有关。我想这是缓存。您不想在重写行之后加一个[L]吗?
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?route=$1