我的 htaccess 檔案重寫規則有問題。我正在強制使用 HTTPS,WWW。和尾部斜線。如果我洗掉 WWW,重定向作業正常。或 HTTPS 然后它與它們一起重定向。好的。
但是,如果我在 url 上附加了“/home/”之類的地方,并且我洗掉了 HTTPS 或 WWW。然后它會像“//index.php/?module=home”而不是附加的“/home/”一樣結束。
值得注意的是,它具有添加尾部斜杠的正確行為。那不會把事情搞砸。
完整規則:
RewriteRule ^image_prox/([%\w\.-_]*)$ /includes/image_proxy.php?url=$1 [N,NC]
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]
RewriteRule ^mailinglist/$ /index.php?module=mailing_list [N]
RewriteRule ^articles/$ /index.php?module=home [N]
RewriteRule ^all-articles/$ /index.php?module=home&displayall [N,QSA]
RewriteRule ^all-articles/page\=([0-9] )/$ /index.php?module=home&page=$1&displayall [N]
RewriteRule ^admin/$ /index.php?module=home [L]
RewriteRule ^latest-comments/$ /index.php?module=comments_latest [N]
RewriteRule ^latest-comments/page=([0-9] )/$ /index.php?module=comments_latest&page=$1 [N,NC,QSA]
RewriteRule ^home/banned/$ /index.php?module=home&message=banned [N]
RewriteRule ^irc/$ /index.php?module=irc [N]
RewriteRule ^register/$ /index.php?module=register [N]
RewriteRule ^about-us/$ /index.php?module=about_us [N]
RewriteRule ^private-messages/$ /index.php?module=messages [N]
RewriteRule ^submit-article/$ /index.php?module=submit_article&view=Submit [N]
RewriteRule ^submit-article/error\=(. ?)?$ /index.php?module=submit_article&view=Submit&error=$1 [N,NC,QSA]
RewriteRule ^contact-us/$ /index.php?module=contact [N]
RewriteRule ^email-us/$ /index.php?module=email_us [N]
RewriteRule ^support-us/$ /index.php?module=support_us [N]
RewriteRule ^articles/$ /index.php?module=home [N]
RewriteRule ^articles/(. ?)\.([0-9] )/$ /index.php?module=articles_full&title=$1&aid=$2 [N,NC,QSA]
RewriteRule ^articles/([0-9] )/$ /index.php?module=articles_full&aid=$1 [N,NC,QSA]
RewriteRule ^articles/(. ?)\.([0-9] )/error=(. ?)/?$ /index.php?module=articles_full&aid=$2&title=$1&error=$3 [N,NC,QSA]
RewriteRule ^articles/(. ?)\.([0-9] )/page\=([0-9] )/?$ /index.php?module=articles_full&aid=$2&title=$1&page=$3 [N,NC,QSA]
RewriteRule ^articles/(. ?)\.([0-9] )/comment_id\=([0-9] )/?$ /index.php?module=articles_full&aid=$2&title=$1&comment_id=$3 [N,NC,QSA]
RewriteRule ^articles/(. ?)\.([0-9] )/article_page\=([0-9] )/?$ /index.php?module=articles_full&aid=$2&title=$1&article_page=$3 [N,NC,QSA]
RewriteRule ^home/page\=([0-9] )/$ /index.php?module=home&page=$1 [N]
RewriteRule ^private-messages/page\=([0-9] )/$ /index.php?module=messages&page=$1 [N,NC,QSA]
RewriteRule ^private-messages/compose/(\d )*/$ /index.php?module=messages&view=compose [N]
RewriteRule ^private-messages/compose/user\=([0-9] )/$ /index.php?module=messages&view=compose&user=$1 [N,NC,QSA]
RewriteRule ^private-messages/([0-9] )/$ /index.php?module=messages&view=message&id=$1 [N,NC,QSA]
RewriteRule ^private-messages/([0-9] )/page\=([0-9] )/$ /index.php?module=messages&view=message&id=$1&page=$2 [N,NC,QSA]
RewriteRule ^profiles/([0-9] )/$ /index.php?module=profile&user_id=$1 [N,NC,QSA]
RewriteRule ^profiles/([0-9] )/comments/$ /index.php?module=profile&view=more-comments&user_id=$1 [N,NC,QSA]
RewriteRule ^profiles/([0-9] )/comments/page\=([0-9] )$ /index.php?module=profile&view=more-comments&user_id=$1&page=$2 [N,NC,QSA]
RewriteRule ^users/statistics/$ /index.php?module=statistics [N,NC,QSA]
RewriteRule ^users/statistics/statid=([0-9] )/$ /index.php?module=statistics&statid=$1&act=pick [N,NC,QSA]
RewriteRule ^articles/category/(. ?)/page\=([0-9] )/$ /index.php?module=articles&view=cat&catid=$1&page=$2 [N,NC,QSA,B]
RewriteRule ^articles/category/(. ?)/$ /index.php?module=articles&view=cat&catid=$1 [N,NC,QSA,B]
RewriteRule ^itemdb/([0-9] )/$ /index.php?module=items_database&view=item&id=$1 [N,NC,QSA]
RewriteRule ^itemdb/developer/([0-9] )/$ /index.php?module=items_database&view=developer&id=$1 [N,NC,QSA]
RewriteRule ^itemdb/anticheats/([0-9] )/$ /index.php?module=items_database&view=anticheats&id=$1 [N,NC,QSA]
RewriteRule ^steam-tracker/$ /index.php?module=steam_linux_share [N,NC,QSA]
RewriteRule ^steamplay/$ steamplay.php [N,NC,QSA]
RewriteRule ^steamplay/reports/([0-9] )/$ steamplay_reports.php?id=$1 [N,NC,QSA]
RewriteRule ^steamplay/reports/([0-9] )/page=([0-9] )/$ steamplay_reports.php?id=$1&page=$2 [N,NC,QSA]
RewriteRule ^db/$ itemdb.php [N,NC,QSA]
RewriteRule ^free-games/$ free_games.php [N]
RewriteRule ^itemdb/steamid/([0-9] )/$ itemdb.php?steamid=$1 [N,NC,QSA]
RewriteRule ^sales/page=([0-9] )/$ /sales.php?page=$1 [N,NC,QSA]
RewriteRule ^sales/([0-9] )/$ /sales.php?sale_id=$1 [N,NC,QSA]
RewriteRule ^sales/message=(. ?)/?$ /sales.php?message=$1 [N,NC,QSA]
RewriteRule ^sales/$ sales.php [N]
Redirect 301 /podcast_rss_ogg.php /podcast_rss.php?format=ogg
# make sure www. is always there
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# force trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)([^/])$ /$1$2/ [L,R=301]
# if requested url does not exist pass it as path info to index.php
RewriteRule ^$ index.php?/ [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?/$1 [QSA,L]
uj5u.com熱心網友回復:
您的外部重定向(非 www 到 www 和 HTTP 到 HTTPS)位置錯誤。這些需要在現有的重寫之前,在檔案的頂部。
您需要清除瀏覽器快取,因為錯誤的 301(永久)重定向將被瀏覽器快取。首先使用 302(臨時)重定向進行測驗以避免快取問題。
(并且您需要將這些N標志更改為L.)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/357880.html
