Mod rewrite mod_重写、尾部斜杠删除和当前目录

Mod rewrite mod_重写、尾部斜杠删除和当前目录,mod-rewrite,directory-structure,trailing-slash,Mod Rewrite,Directory Structure,Trailing Slash,我已经仔细阅读了相关的问题,但我想不出这个小小的警告。通过mod_rewrite删除尾部斜杠的黄金法则是: RewriteRule^(.*)/$/$1[R,L] 这一切都很好,但是如果存在一个目录结构,它会去掉前面的目录结构。因此,如果我的应用程序引导在托管路径的根目录下运行,则它可以工作,但如果在子目录中,则无法工作: http://localhost/path/to/application/pretty/query/string/ 变成 http://localhost/pretty/que

我已经仔细阅读了相关的问题,但我想不出这个小小的警告。通过mod_rewrite删除尾部斜杠的黄金法则是:

RewriteRule^(.*)/$/$1[R,L]

这一切都很好,但是如果存在一个目录结构,它会去掉前面的目录结构。因此,如果我的应用程序引导在托管路径的根目录下运行,则它可以工作,但如果在子目录中,则无法工作:

http://localhost/path/to/application/pretty/query/string/

变成

http://localhost/pretty/query/string
(注意:斜杠被去除,但目录也被去除)

如何保留当前目录位置,以便前面的示例返回预期的:

http://localhost/path/to/application/pretty/query/string


更新

归根结底,这是为了一致性;附加或删除尾部斜杠都是合适的。我在尝试两种方法之间来回工作,但都没有成功


可以接受附加或删除尾部斜杠的答案

好吧,我解决了它的附加:

Options +FollowSymLinks

RewriteEngine On
RewriteBase /_dev/_projects/mf_frame

RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1/ [R,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) ?routePath=$1 [L,QSA]
我缺少
RewriteBase
指令。我再去脱衣。如果有什么事情可以做得更好的话,请随时提出我的方法的替代方案