htaccess 在删除 www 时恢复为 php url。或https
htaccess reverting to php url when taking away www. or https
我的 htaccess 文件重写规则有问题。我强制使用 HTTPS,WWW。和尾部斜线。如果我删除 WWW,重定向工作正常。或 HTTPS,然后它会与它们一起重定向。不错
但是,如果我在 url 上附加了类似“/home/”的位置,并且我删除了 HTTPS 或 WWW。然后它最终会像“//index.php/?module=home”而不是附加的“/home/”。
值得注意的是,它具有添加尾部斜杠的正确行为。这并没有把事情搞砸。
完整规则:
RewriteRule ^image_prox/([%\w\.-_]*)$ /includes/image_proxy.php?url= [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=&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= [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= [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=&aid= [N,NC,QSA]
RewriteRule ^articles/([0-9]+)/$ /index.php?module=articles_full&aid= [N,NC,QSA]
RewriteRule ^articles/(.+?)\.([0-9]+)/error=(.+?)/?$ /index.php?module=articles_full&aid=&title=&error= [N,NC,QSA]
RewriteRule ^articles/(.+?)\.([0-9]+)/page\=([0-9]+)/?$ /index.php?module=articles_full&aid=&title=&page= [N,NC,QSA]
RewriteRule ^articles/(.+?)\.([0-9]+)/comment_id\=([0-9]+)/?$ /index.php?module=articles_full&aid=&title=&comment_id= [N,NC,QSA]
RewriteRule ^articles/(.+?)\.([0-9]+)/article_page\=([0-9]+)/?$ /index.php?module=articles_full&aid=&title=&article_page= [N,NC,QSA]
RewriteRule ^home/page\=([0-9]+)/$ /index.php?module=home&page= [N]
RewriteRule ^private-messages/page\=([0-9]+)/$ /index.php?module=messages&page= [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= [N,NC,QSA]
RewriteRule ^private-messages/([0-9]+)/$ /index.php?module=messages&view=message&id= [N,NC,QSA]
RewriteRule ^private-messages/([0-9]+)/page\=([0-9]+)/$ /index.php?module=messages&view=message&id=&page= [N,NC,QSA]
RewriteRule ^profiles/([0-9]+)/$ /index.php?module=profile&user_id= [N,NC,QSA]
RewriteRule ^profiles/([0-9]+)/comments/$ /index.php?module=profile&view=more-comments&user_id= [N,NC,QSA]
RewriteRule ^profiles/([0-9]+)/comments/page\=([0-9]+)$ /index.php?module=profile&view=more-comments&user_id=&page= [N,NC,QSA]
RewriteRule ^users/statistics/$ /index.php?module=statistics [N,NC,QSA]
RewriteRule ^users/statistics/statid=([0-9]+)/$ /index.php?module=statistics&statid=&act=pick [N,NC,QSA]
RewriteRule ^articles/category/(.+?)/page\=([0-9]+)/$ /index.php?module=articles&view=cat&catid=&page= [N,NC,QSA,B]
RewriteRule ^articles/category/(.+?)/$ /index.php?module=articles&view=cat&catid= [N,NC,QSA,B]
RewriteRule ^itemdb/([0-9]+)/$ /index.php?module=items_database&view=item&id= [N,NC,QSA]
RewriteRule ^itemdb/developer/([0-9]+)/$ /index.php?module=items_database&view=developer&id= [N,NC,QSA]
RewriteRule ^itemdb/anticheats/([0-9]+)/$ /index.php?module=items_database&view=anticheats&id= [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= [N,NC,QSA]
RewriteRule ^steamplay/reports/([0-9]+)/page=([0-9]+)/$ steamplay_reports.php?id=&page= [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= [N,NC,QSA]
RewriteRule ^sales/page=([0-9]+)/$ /sales.php?page= [N,NC,QSA]
RewriteRule ^sales/([0-9]+)/$ /sales.php?sale_id= [N,NC,QSA]
RewriteRule ^sales/message=(.+?)/?$ /sales.php?message= [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}/ [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# force trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)([^/])$ // [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?/ [QSA,L]
您的外部重定向(非 www 到 www 和 HTTP 到 HTTPS)在错误的地方。这些需要在现有的重写之前,在文件的顶部。
您需要清除浏览器缓存,因为浏览器缓存了错误的 301(永久)重定向。首先使用 302(临时)重定向进行测试以避免缓存问题。
(并且您需要将那些 N
标志更改为 L
。)
我的 htaccess 文件重写规则有问题。我强制使用 HTTPS,WWW。和尾部斜线。如果我删除 WWW,重定向工作正常。或 HTTPS,然后它会与它们一起重定向。不错
但是,如果我在 url 上附加了类似“/home/”的位置,并且我删除了 HTTPS 或 WWW。然后它最终会像“//index.php/?module=home”而不是附加的“/home/”。
值得注意的是,它具有添加尾部斜杠的正确行为。这并没有把事情搞砸。
完整规则:
RewriteRule ^image_prox/([%\w\.-_]*)$ /includes/image_proxy.php?url= [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=&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= [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= [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=&aid= [N,NC,QSA]
RewriteRule ^articles/([0-9]+)/$ /index.php?module=articles_full&aid= [N,NC,QSA]
RewriteRule ^articles/(.+?)\.([0-9]+)/error=(.+?)/?$ /index.php?module=articles_full&aid=&title=&error= [N,NC,QSA]
RewriteRule ^articles/(.+?)\.([0-9]+)/page\=([0-9]+)/?$ /index.php?module=articles_full&aid=&title=&page= [N,NC,QSA]
RewriteRule ^articles/(.+?)\.([0-9]+)/comment_id\=([0-9]+)/?$ /index.php?module=articles_full&aid=&title=&comment_id= [N,NC,QSA]
RewriteRule ^articles/(.+?)\.([0-9]+)/article_page\=([0-9]+)/?$ /index.php?module=articles_full&aid=&title=&article_page= [N,NC,QSA]
RewriteRule ^home/page\=([0-9]+)/$ /index.php?module=home&page= [N]
RewriteRule ^private-messages/page\=([0-9]+)/$ /index.php?module=messages&page= [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= [N,NC,QSA]
RewriteRule ^private-messages/([0-9]+)/$ /index.php?module=messages&view=message&id= [N,NC,QSA]
RewriteRule ^private-messages/([0-9]+)/page\=([0-9]+)/$ /index.php?module=messages&view=message&id=&page= [N,NC,QSA]
RewriteRule ^profiles/([0-9]+)/$ /index.php?module=profile&user_id= [N,NC,QSA]
RewriteRule ^profiles/([0-9]+)/comments/$ /index.php?module=profile&view=more-comments&user_id= [N,NC,QSA]
RewriteRule ^profiles/([0-9]+)/comments/page\=([0-9]+)$ /index.php?module=profile&view=more-comments&user_id=&page= [N,NC,QSA]
RewriteRule ^users/statistics/$ /index.php?module=statistics [N,NC,QSA]
RewriteRule ^users/statistics/statid=([0-9]+)/$ /index.php?module=statistics&statid=&act=pick [N,NC,QSA]
RewriteRule ^articles/category/(.+?)/page\=([0-9]+)/$ /index.php?module=articles&view=cat&catid=&page= [N,NC,QSA,B]
RewriteRule ^articles/category/(.+?)/$ /index.php?module=articles&view=cat&catid= [N,NC,QSA,B]
RewriteRule ^itemdb/([0-9]+)/$ /index.php?module=items_database&view=item&id= [N,NC,QSA]
RewriteRule ^itemdb/developer/([0-9]+)/$ /index.php?module=items_database&view=developer&id= [N,NC,QSA]
RewriteRule ^itemdb/anticheats/([0-9]+)/$ /index.php?module=items_database&view=anticheats&id= [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= [N,NC,QSA]
RewriteRule ^steamplay/reports/([0-9]+)/page=([0-9]+)/$ steamplay_reports.php?id=&page= [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= [N,NC,QSA]
RewriteRule ^sales/page=([0-9]+)/$ /sales.php?page= [N,NC,QSA]
RewriteRule ^sales/([0-9]+)/$ /sales.php?sale_id= [N,NC,QSA]
RewriteRule ^sales/message=(.+?)/?$ /sales.php?message= [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}/ [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# force trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)([^/])$ // [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?/ [QSA,L]
您的外部重定向(非 www 到 www 和 HTTP 到 HTTPS)在错误的地方。这些需要在现有的重写之前,在文件的顶部。
您需要清除浏览器缓存,因为浏览器缓存了错误的 301(永久)重定向。首先使用 302(临时)重定向进行测试以避免缓存问题。
(并且您需要将那些 N
标志更改为 L
。)