添加尾部斜杠.htaccess

添加尾部斜杠.htaccess,.htaccess,mod-rewrite,redirect,slash,trailing-slash,.htaccess,Mod Rewrite,Redirect,Slash,Trailing Slash,我正在尝试获得以下效果(使用此本地文件http://localhost/[公司名称]/[项目名称]/.htaccess): 我在这里找到了上面的代码:,但它只允许动态使用主机并丢弃路径。是否有人提出了一个解决方案来实现这一效果 RewriteCond %{REQUEST_URI} !(/$|\.) RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] 此代码需要放在.htaccess文件的顶部,在上的“重写引擎”下请在.htaccess文件顶部添加以下行 R

我正在尝试获得以下效果(使用此本地文件
http://localhost/[公司名称]/[项目名称]/.htaccess
):

我在这里找到了上面的代码:,但它只允许动态使用主机并丢弃路径。是否有人提出了一个解决方案来实现这一效果

RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] 

此代码需要放在.htaccess文件的顶部,在

上的“重写引擎”下请在.htaccess文件顶部添加以下行

RewriteEngine on
#Add Trailing slash for end of the URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R]

请在
.htaccess,

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [L,R=301]

所有其他答案的问题是:POST请求在重定向时会丢失数据。 您可以使用http 307指示浏览器重新发送POST数据:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=307]


顺便说一句,我更喜欢请求文件名条件。这可以确保请求真正针对的是文件夹结构,而不是将斜杠附加到文件URL。

RewriteCond%{request_URI}!(/$|\)重写规则(.*)%{REQUEST_URI}/[R=301,L]不认为这可以将www.mydomain.com转换为www.mydomain.com/根域不包括在内。在Web服务器上,和具有完全相同的URI。出于搜索引擎优化的原因,它们在根域中被视为相同的,带或不带尾部的slashesadd^$in条件,以避免在域RewriteCond%{REQUEST_URI}末尾出现“/”!(/$\.\.^$)RewriteRule(.*)%{REQUEST_URI}/[R=301,L]此代码需要放在RewriteEngine下面的.htaccess文件的顶部。请在回答时提到,当您将这些行放在.htaccess文件的顶部时,它将起作用。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=307]