我似乎无法让以下 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 删除本地主机上 zend 框架中的尾部斜线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8139940/