htaccess尾部斜杠错误
问题描述:
我知道有些类似的问题已经被问到,是的,我读过所有相关答案,并尝试了一段时间。但我无法弄清楚错误是什么。我相信剧本是正确的。到底是怎么回事?htaccess尾部斜杠错误
我的问题是,我不能让后面的斜杠出现在网址中。因此我得到了同一页面的两个版本。 (重复的内容问题?)例如:
htttps://www.example.com/faq.php
&
htttps://www.example.com/faq.php/
我曾希望总是自动添加尾部斜杠,所以没有其他版本相同。
这里是我的.htaccess代码:
<IfModule mod_rewrite.c>
RewriteEngine On
#Redirect anything to http://www (WORKING FINE)
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
#Redirect anything to https (WORKING FINE)
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#Redirect to trailing slash (NOT WORKING!)
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ https://example.com/$1/ [L,R=301]
#Redirect /index.php to/(WORKING FINE)
RewriteCond %{THE_REQUEST} ^.*/index\.php
RewriteRule ^(.*)index.php$ /$1 [R=301,L]
</IfModule>
而且一个在同更多的问题。
这是什么,当我去我的域后面的斜杠“/”没有显示在网址中。然后,我复制&将其粘贴到文本编辑器中,并以尾部斜杠作为https://www.example.com/。
但是,当我复制/粘贴从任何子页面的网址,例如/faq.php(不要像:/ faq.php/shwoing)一样不会发生。
我知道根域中的尾部斜杠对于使HTTP请求有效是必要的,但为什么浏览器不显示它?只是一个美学的东西?无论如何,我更关心上述问题。
非常感谢您的帮助!
答
但是我无法弄清楚错误是什么。我相信剧本是正确的。到底是怎么回事?
您正在检查重定向之前文件是否不存在。这是不是你想要的,所以删除此行:
RewriteCond %{REQUEST_FILENAME} !-f
它是如何,当我去我的域名,其中尾部斜杠“/”未在URL显示。然后,我复制&将其粘贴到文本编辑器中,并以尾部斜杠作为https://www.example.com/。
某些浏览器会自动执行此操作。这可能是因为这是所请求的实际URL。它也使它看起来更像一个URL。
非常感谢您的回答。欣赏它!由于一些奇怪的原因,它不起作用。我只使用:(。*) RewriteBase/ 的RewriteCond%{REQUEST_URI}(。*)/ $ 重写规则^ $ https://example.com/$1/ [L,R = 301] 我现在得到的结果是: “www.example。“ ERR_TOO_MANY_REDIRECTS 并且网站根本没有显示。 –
你改变了你的问题的最后一行,应该是'RewriteRule ^(。*)$ https://example.com/$1/ [L,R = 301]'。 – Anonymous