.htaccess重写:强制www,https,并允许URL不带斜杠

时间:2018-11-06 01:19:57

标签: apache .htaccess redirect mod-rewrite

创建一个.htaccess文件,该文件将在单个重定向中强制使用https和www。

它还允许用户放置 example.com/subfolder 显示时将重定向到文件夹的index.html或index.php文件 https://www.example.com/subfolder(不带斜杠)

这是我目前拥有的:

RewriteEngine on

## Force https and www in one redirect
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=302]

## Remove trailing slash if not directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^(.*)/$ https://www.example.com/$1 [R=302,L]

#Remove .html
Options -MultiViews
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

# Make index.html or index.php defaults
DirectoryIndex index.html index.php index

除了用户在example.com/subfolder中键入内容时,所有内容都可以正常工作,返回301页面。

可以正确重定向的方式:

www.example.com/subfolder/
www.example.com/subfolder/index.html
https://www.example.com/subfolder/index.html

不起作用:

example.com/subfolder/index.html
https://example.com/subfolder
https://example.com/subfolder/index

我希望所有这些网址都能正常工作

0 个答案:

没有答案