添加斜杠后,Apache DirectorySlash引发错误的问题

时间:2019-03-03 06:08:14

标签: apache configuration

我知道这是服务器问题,但是ServerFault很难获得答案。不要将此问题标记为ServerFault问题!!!

我正在测试目录而不使用斜杠

example.co/test 

引发错误并重定向到 example.co:443/test /

当我删除ErrorDocument以查看发生了什么时,这就是我得到的:

enter image description here

我尝试了许多不同的方法,包括:

RewriteCond %{HTTP:X-Forwarded-Proto} =https
RewriteCond %{LA-U:REQUEST_FILENAME} -d
RewriteRule ^/(.*[^/])$ https://%{HTTP_HOST}/$1/ [R=301,L,QSA]

没有运气。

添加斜杠后,出现 mod_dir ,是在调用HTTP请求吗?

这是我的默认SSL代码:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
<IfModule mod_ssl.c>
 ExpiresActive On
 ExpiresDefault "access plus 1 month"
 Protocols h2 h2c http/1.1
 ErrorDocument 400 https://example.co
 ErrorDocument 403 https://example.co
 ErrorDocument 404 https://example.co
 ErrorDocument 405 https://example.co
 ErrorDocument 408 https://example.co
 ErrorDocument 500 https://example.co
 ErrorDocument 502 https://example.co
 ErrorDocument 504 https://example.co
 <Directory /var/www/html/>
  Options FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>
 <FilesMatch "\.(cgi|shtml|phtml|php)$">
  SSLOptions +StdEnvVars
 </FilesMatch>
 <Directory /usr/lib/cgi-bin>
  SSLOptions +StdEnvVars
 </Directory>
 Alias "/library/" "/var/www/html/example/library/"
 <VirtualHost _default_:443>
  ServerName example.co
  DocumentRoot /var/www/html/example
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/example.co/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.co/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/live/example.co/chain.pem
 </VirtualHost>
</IfModule>

所以 example.co/test / 可以很好地工作。

example.co/test 重定向到 example.co:443/test / 并引发错误。为什么 DirectorySlash 做HTTP东西?

0 个答案:

没有答案