簡體   English   中英

.htaccess將所有頁面重定向到主頁,除了少數頁面

[英].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文件和圖像。 所以可以說我想從這兩個文件夾中加載所有文件:

  • / CSS
  • /圖片

我也想保留2個子頁面:

  • /subpage1.html
  • /subpage2.html

其他所有內容都應重定向到首頁。

要排除頁面被重寫的情況,可以將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM