[英].htaccess redirect all pages to homepage except few of them
我有一個僅保留2個子頁面的網站,我想將所有其他子頁面重定向到主頁。 這是我當前的htaccess代碼:
# this is to disable varnish caching on my server
Header set Set-Cookie "_asomcnc=1; max-age=900; path=/;"
RewriteEngine On
# redirect to www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# redirect index.html to root
RewriteBase /
RewriteRule ^index\.html$ / [NC,R,L]
# remove trailing slash
RewriteRule ^(.*)/$ /$1 [L,R=301]
我嘗試了一些在堆棧溢出時在這里找到的示例,但是我不斷收到重定向循環,或者未加載CSS文件和圖像。 所以可以說我想從這兩個文件夾中加載所有文件:
我也想保留2個子頁面:
其他所有內容都應重定向到首頁。
要排除頁面被重寫的情況,可以將RewriteCond
與%{REQUEST_URI}
一起使用,也可以將規則鏈短路。
要提前退出,請在開頭插入這些規則
RewriteRule ^css - [L]
RewriteRule ^images - [L]
RewriteRule ^subpage1.html$ - [L]
RewriteRule ^subpage2.html$ - [L]
然后,將其他所有內容重定向到主頁,當然,除非已經是主頁
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^ / [R,L]
用RewriteCond
做同樣的事情
RewriteCond %{REQUEST_URI} !^/css
RewriteCond %{REQUEST_URI} !^/images
RewriteCond %{REQUEST_URI} !^/subpage1.html$
RewriteCond %{REQUEST_URI} !^/subpage2.html$
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^ / [R,L]
這將重定向到主頁,但前提是REQUEST_URI
不是css,不是圖像,不是subpage1.html,不是subpage2.html且還不是主頁。
當一切正常運行時,可以將R
替換為R=301
。 切勿使用R=301
測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.