我似乎无法获得以下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/