重写规则:删除www |强制执行HTTPS |追加?<number>

时间:2017-12-02 18:51:25

标签: .htaccess mod-rewrite

我想为我的网站完成以下内容:

  • 删除www
  • 强制执行HTTPS
  • 在末尾附加?number 以强制执行页面内容重新加载
  • 根据语言(en,el)使用不同的404页面。已经创建了单独的404页面

我的.htaccess如下:

RewriteOptions inherit
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteRule ^ https://%1%{REQUEST_URI}?521 [NE,L,R]
ErrorDocument 404 /404.html

行为如下:

  1. 移除了www
  2. 强制执行HTTPS
  3. 如果网址 HTTPS
  4. ,则仅附加?号
  5. 我无法想象如何重定向到正确的404页面。请注意,如果所选语言为希腊语
  6. ,则 / el / 是网址的一部分

    请你帮我解决上面的第3,4点?

    谢谢

1 个答案:

答案 0 :(得分:0)

我有删除www并强制执行HTTPS的答案,但就是这样。 希望这有帮助。

WWW&amp; HTTPS

#Remove WWW
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]

#Ensure https
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]