HTAccess Mod_Rewrite HTTPS WWW保持URL

时间:2016-02-23 15:50:21

标签: apache .htaccess mod-rewrite joomla

我希望有人能够帮助我,因为我正在慢慢失去理智,试图在HTAccess中使用重写规则。

我只需要做三件事。

1)所有www。交通应该转到非www。
2)所有非https流量都应该转到https 3)应通过这些重写保留所有URL。

我在网上尝试过无数不同的例子(以及我自己对它们的混淆变化)但没有达到我追求的结果。该网站使用Joomla,因此Joomla标准包含相当数量的废话,但我很确定这些都没有干扰它。

使用当前的HTAccess'www。'正在被删除,用户被迫进行https,但URL正在丢失。

预先感谢您的协助!

我的HTAccess文件在这里:

AddHandler application/x-httpd-php53 .php
ErrorDocument 401 "Authorisation Required"

##
# Joomla Crap START
##

RewriteEngine On

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]

RewriteBase /

#RewriteCond %{HTTP_HOST} !^www\.
#RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

##
# Joomla Crap END
##

# rewrite www.mywebsite.co.uk > mywebsite.co.uk
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

# rewrite http > https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

Redirect 301 /~fitspace https://mywebsite.co.uk
RedirectMatch 301 ^/index.php/(.*)$ https://mywebsite.co.uk/$1

1 个答案:

答案 0 :(得分:1)

尝试:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [OR]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%1%{REQUEST_URI} [L,R]

上述规则将重定向