URL尾随斜杠被删除

时间:2016-12-18 13:47:10

标签: .htaccess apache2.4 trailing-slash

我最近发现了一个错误,当我转到example.com/phpmyadminexample.com/index时,会删除尾部斜杠,因此它会调用example.comphpadminexample.comindex。斜线后的所有内容都会发生这种情况。但如果我有像example.com/index/home那样的第二个尾部斜线,它就能完美运行。

我的网站配置中有一个从http到https的重定向,运行apache2.4。

我的配置:

<VirtualHost *:80>
    ServerName example.net
    Redirect permanent / https://example.net
</VirtualHost>

我的.htaccess:

<IfModule mod_rewrite.c>
  RewriteEngine On
  # !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading
  #  slashes.
  # If your page resides at
  #  http://www.example.com/mypage/test1
  # then use
  # RewriteBase /mypage/test1/
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond $1 !^(phpmyadmin|index\.php|images|robots\.txt)
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
  # If we don't have mod_rewrite installed, all 404's
  # can be sent to index.php, and everything works as normal.
  # Submitted by: ElliotHaughin

  ErrorDocument 404 /index.php
</IfModule>
我环顾四周但没找到答案。也许我的配置有问题,有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

考虑到由于RewriteCond,这个RewriteRule甚至不能执行/ phpmyadmin,并且RewritRule没有重定向,问题是你在发送所有的所有未知的资源。

或者,您还没有向我们展示实际配置。

答案 1 :(得分:0)

我是愚蠢的,只需要清除缓存以使其正常工作。我不知道究竟什么不起作用,但我在发布这篇文章之前所做的更改确实有效,只是缓存仍然有错误的版本。