Mod rewrite mod_rewrite在不使用尾部斜杠时追加查询字符串

Mod rewrite mod_rewrite在不使用尾部斜杠时追加查询字符串,mod-rewrite,Mod Rewrite,我花了一些时间在谷歌上,所以我试图弄明白这一点,现在我不得不求助于问另一个mod_重写问题 我正在使用mod_rewrite,在大多数情况下,它运行良好 我遇到的问题是: # Load pages for health-it while keeping the URL masked RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^health-it/([-a-z0-9]+)/? /health-it/loadPage.php?p=$1 [NC,L

我花了一些时间在谷歌上,所以我试图弄明白这一点,现在我不得不求助于问另一个mod_重写问题

我正在使用mod_rewrite,在大多数情况下,它运行良好

我遇到的问题是:

# Load pages for health-it while keeping the URL masked
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^health-it/([-a-z0-9]+)/? /health-it/loadPage.php?p=$1 [NC,L]
我有一个我想要的URI:

/health-it/aimsconsultant
问题是,mod_rewrite正在这样做:

/health-it/aimsconsultant/?p=aimsconsultant
页面仍在加载,但URI是问题所在

/health-it/aimsconsultant/
一切正常。应该注意的是/health It/aimsconsultant是一个目录,可能这就是原因?我相信Apache会重定向以附加目录的尾部斜杠,但为什么它会附加查询字符串呢

它适用于内部页面(内部页面没有目录):

工作正常

唯一的问题是在第一层。。。这对我来说毫无意义,我对为什么会发生这种情况感到困惑。请,有人能告诉我如何解决这个问题,以及为什么它会以这种方式工作吗


感谢您的帮助

为URL版本添加不带尾随斜杠的特定条目:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^health-it/([-a-z0-9]+)? /health-it/loadPage.php?p=$1 [NC,L]

我已经遇到过这样的问题,mod_rewrite以追加查询字符串结束,即使没有QSA标志。不知道为什么…

为URL版本添加不带尾随斜杠的特定条目:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^health-it/([-a-z0-9]+)? /health-it/loadPage.php?p=$1 [NC,L]

我已经遇到过这样的问题,mod_rewrite以追加查询字符串结束,即使没有QSA标志。不知道为什么…

好的,对不起,我误读了这篇文章?一美元

尝试添加此项后,似乎可以将其添加到工作中:

DirectorySlash Off

默认情况下,它是打开的,这就是为什么当Apache试图获取URL的规范表示时,它会返回到目录中。

好的,对不起,我误读了?一美元

尝试添加此项后,似乎可以将其添加到工作中:

DirectorySlash Off

默认情况下,它是打开的,这就是为什么当Apache试图获取URL的规范表示时,它会返回到目录中。

我已经尝试过多次,只是为了确定。/?应该足够了,因为斜杠是可选的。谢谢你的建议,但还是没用。我已经试过多次了,只是想确定一下?应该足够了,因为斜杠是可选的。谢谢你的建议,但还是没用