我似乎无法获得以下htaccess规则来与Zend Framework一起正常使用。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

RewriteCond %{HTTP_HOST} !^\.localhost$ [NC]
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]


上面的代码会将localhost/zendtest/dev/public/login/转换为localhost/login,它在结尾处删除了斜杠,但失去了其他所有内容。

我如何将localhost/zendtest/dev/public/login/转换为localhost/zendtest/dev/public/login

我只想在最后删除斜线。

最佳答案

尾随的/通常是确定路径为目录时会自动附加的内容。通常,您可以使用以下命令停止添加/

DirectorySlash Off


但是,这只会阻止系统自动附加它们。用户也可以手动输入。我建议仅使用预处理器检测它,如果/是文件路径中的最后一个字符,则删除它,而不要使用重写。当然不要使用重定向,因为那样的话,您只是为了删除/而使用了额外的HTTP连接,这是浪费资源。

关于zend-framework - htaccess删除localhost上zend框架中的尾部斜杠,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8139940/

10-16 10:18