[英]htaccess remove www redirect to ssl but wrong url
我用 php 創建了一個 mvc 框架。 我唯一工作的主文件是 index.php。
通常我從 http 重定向到 https。 我也刪除了 www 域,但是當我輸入 www 時,如果我的 URL 是例如
domain.com/admin/products/edit/1,
htaccess 這樣做。
domain.com/index.php/products/edit/1
我該如何解決這個謝謝
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
你應該有這樣的規則,總是把 https 重定向規則放在第一位。 請在測試您的 URL 之前清除您的瀏覽器緩存(其余規則來自 OP 的嘗試規則 + 我在這里也更改了匹配主機名的正則表達式)。
RewriteEngine ON
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
RewriteCond %{HTTP_HOST} ^(?:www\.)(example\.com) [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301,NE]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^ index.php [L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.