【发布时间】:2017-08-09 15:47:51
【问题描述】:
我知道有人问了一些类似的问题,是的,我做了并阅读了所有相关答案,并尝试了很长时间。但是我无法弄清楚错误是什么。我相信剧本是正确的。怎么回事?
我的问题是我不能让结尾的斜杠出现在 url 中。因此,我得到了同一页面的 2 个版本。 (重复内容问题?)例如:
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>
还有一个关于同一问题的问题。
当我转到我的域时,如何在 URL 中没有显示尾部斜杠“/”。然后我将它复制并粘贴到文本编辑器中,它以 https://www.example.com/ 的形式出现,并带有斜杠。
然而,当我从上面提到的任何子页面复制/粘贴 URL 时,同样的情况不会发生,例如 /faq.php(不显示为:/faq.php/)。
我知道根域中的尾部斜杠是使 HTTP 请求有效所必需的,但为什么浏览器不显示它?只是审美问题?反正我更关心上面的问题。
非常感谢您的帮助!
【问题讨论】:
标签: .htaccess redirect slash trailing