我尝试在每个网址结尾处获得一个"/":
example.com/art
应该
example.com/art/
我使用nginx作为webserver.
我需要重写规则..
为了更好地理解,请检查:
http://3much.schnickschnack.info/art/projekte
如果你按下大图下的一个小缩略图,它会重新加载并显示这个网址:
http://3much.schnickschnack.info/art/projekte/#0
如果我现在在所有网址上都有一个斜杠(最后),那么无需重新加载网站即可.
现在我在nginx-http.conf中有这个设置:
server { listen *:80; server_name 3much.schnickschnack.info; access_log /data/plone/deamon/var/log/main-plone-access.log; rewrite ^/(.*)$ /VirtualHostBase/http/3much.schnickschnack.info:80/2much/VirtualHostRoot/$1 last; location / { proxy_pass http://cache; } }
如何配置nginx以添加斜杠?(我想我应该重写规则?)
更有可能我认为你会想要这样的东西:
rewrite ^([^.]*[^/])$ $1/ permanent;
正则表达式转换为:"重写所有URI而不使用任何'.' 在它们中没有以'/'结尾的URI +'/'"或简单地说:"如果URI没有句点并且没有以斜杠结尾,则在末尾添加斜杠"
仅重写URI而没有点的原因使得任何具有文件扩展名的文件都不会被重写.例如你的图像,CSS,JavaScript等,并防止可能的重定向循环,如果使用一些自己的重写的PHP框架也
另外一个常见的重写是:
rewrite ^([^.]*)$ /index.php;
这非常简单地将所有没有句点的URI重写到index.php(或者你将执行控制器的任何文件).
rewrite ^([^.\?]*[^/])$ $1/ permanent;
避免使用/标记的休息URL的查询字符串.
例如
/ myrest /办?d = 12345
对于nginx:
rewrite ^(.*[^/])$ $1/ permanent;