我似乎无法使用以下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
我想在最后删除斜杠。
答案 0 :(得分:0)
尾随/
通常是在确定路径是目录时自动附加的内容。通常情况下,您可以停止使用以下内容添加/
:
DirectorySlash Off
但是,这只会阻止系统自动附加它们。如果用户也想要,他们仍然可以手动输入。我建议只使用预处理器检测它,如果它是文件路径中的最后一个字符,则删除/
,而不是使用重写。当然不要使用重定向,因为那时你只是为了删除/
而使用额外的HTTP连接,这是浪费资源。