Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache .htaccess以显示不带尾随斜杠的目录index.html_Apache_.htaccess - Fatal编程技术网

Apache .htaccess以显示不带尾随斜杠的目录index.html

Apache .htaccess以显示不带尾随斜杠的目录index.html,apache,.htaccess,Apache,.htaccess,我在Apache服务器上运行了一个由Jekyll生成的站点,在正确设置.htaccess文件时遇到了一些问题。Jekyll将index.html文件放入表示每个页面的文件夹中,因此我的URL当前看起来像domain.com/foo/ 我想从URL中删除尾随的斜杠,以便它与我之前设置的内容完全匹配(而且因为我认为它看起来更好) 当前,my.htaccess文件中处理重新布线的部分如下所示: <IfModule mod_rewrite.c> RewriteCond %{HTTPS}

我在Apache服务器上运行了一个由Jekyll生成的站点,在正确设置.htaccess文件时遇到了一些问题。Jekyll将index.html文件放入表示每个页面的文件夹中,因此我的URL当前看起来像
domain.com/foo/

我想从URL中删除尾随的斜杠,以便它与我之前设置的内容完全匹配(而且因为我认为它看起来更好)

当前,my.htaccess文件中处理重新布线的部分如下所示:

<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>

Options -Indexes

DirectoryIndex index.xml index.html

重写cond%{HTTPS}=在…上
重写cond%{HTTP_HOST}^www\.(.+)$[NC]
重写规则^(.*)$http://%1/$1[R=301,L]
选项-索引
DirectoryIndex.xml index.html
我试着按照建议去做,但这让我陷入了一个重定向循环


有人能帮我吗?简言之,我想让domain.com/foo URL显示/foo目录中的index.html文件,让domain.com/foo/和domain.com/foo/index.html重定向到domain.com/foo。

您应该能够使用它来关闭斜杠的添加

DirectorySlash Off
请注意,添加尾随斜杠是有充分理由的。在目录名中添加尾随斜杠将使相对URL指向同一点,而不管URL是以“foo/bar/index.html”结尾还是仅以“foo/bar/”结尾。如果没有后面的斜杠,相对URL将从它们通常指向的位置向上引用某个级别。(例如:“baz.jpg”将给用户“/foo/baz.jpg”而不是“/foo/bar/baz.jpg”,因为如果尾部的“bar”不受尾部斜杠的保护,它将被删除。)因此,如果这样做,您可能希望避免相对URL

然后,要重写目录名以返回index.html,您可能需要执行以下操作:

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}/index.html -f
RewriteRule ^(.*)$ /$1/index.html [L]

这将检查REQUEST_URI/index.html是否存在,以及它是否执行内部重定向。

您应该能够使用它来关闭斜杠的添加

DirectorySlash Off
请注意,添加尾随斜杠是有充分理由的。在目录名中添加尾随斜杠将使相对URL指向同一点,而不管URL是以“foo/bar/index.html”结尾还是仅以“foo/bar/”结尾。如果没有后面的斜杠,相对URL将从它们通常指向的位置向上引用某个级别。(例如:“baz.jpg”将给用户“/foo/baz.jpg”而不是“/foo/bar/baz.jpg”,因为如果尾部的“bar”不受尾部斜杠的保护,它将被删除。)因此,如果这样做,您可能希望避免相对URL

然后,要重写目录名以返回index.html,您可能需要执行以下操作:

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}/index.html -f
RewriteRule ^(.*)$ /$1/index.html [L]

这将检查REQUEST_URI/index.html是否存在,以及它是否执行内部重定向。

感谢您的响应,我认为这可能是答案的一半。这会阻止domain.com/foo重写为domain.com/foo/,但不会显示/foo/中的index.html文件directory@mrappleton您可能需要添加一个单独的重写。我在答案中添加了一些可能有用的东西。这就差不多了。我只需要添加
RewriteRule^(+)/$http://floatleft.com/1美元[R=301,L]
我得到了我想要的东西。非常感谢你的帮助!哦,这又吐出了一件事。我在/feed/文件夹中有一个index.xml。有没有一种方法可以指向/输入这个?哦,不用担心-明白了!再次感谢!谢谢你的回答,我想这可能是答案的一半。这会阻止domain.com/foo重写为domain.com/foo/,但不会显示/foo/中的index.html文件directory@mrappleton您可能需要添加一个单独的重写。我在答案中添加了一些可能有用的东西。这就差不多了。我只需要添加
RewriteRule^(+)/$http://floatleft.com/1美元[R=301,L]
我得到了我想要的东西。非常感谢你的帮助!哦,这又吐出了一件事。我在/feed/文件夹中有一个index.xml。有没有一种方法可以指向/输入这个?哦,不用担心-明白了!再次感谢!