簡體   English   中英

.htaccess Apache mod重寫規則始終提供重定向循環

[英].htaccess Apache mod rewrite rule always giving a redirect loop

我通常擅長編寫apache重定向,但是這個特定客戶端的服務器給我帶來了問題:c

我試圖將所有子頁面重定向到主域,但是我總是遇到無限重定向循環。

這是我的.htaccess文件-我在做什么錯?

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^test$ "http\:\/\/example\.com\/" [R=301,L]
RewriteCond %{REQUEST_URI} !"^/$"
RewriteRule ^.*$ "http\:\/\/example\.com\/" [R=301,L]

哇重定向無限! 但請說,如果我做這樣的事情:

RewriteRule ^test$ "http\:\/\/example\.com\/" [R=301,L]

這會將http://example.com/test重定向到http://example.com和bam,它起作用了!

任何指導將不勝感激。 謝謝!

//編輯

問題是我們有一個郵件列表插件,可以向用戶發送確認電子郵件。 單擊確認電子郵件中的確認按鈕后,用戶將被重定向回我們的網站,並在http://example.com/后面附加了一個長查詢字符串。 查詢字符串已生成,因此永遠不會相同。

這是查詢字符串之一的示例:

http://example.com/?has_media=false&fan=https%3A%2F%2Fapp.topspin.net%2Fapi%2Fv1%2Ffan%2Fshow%2F63451204%3Fartist_id%3D12053%26auth%3D96419cab29f59a342cde9ca3c0c20b58&campaign=https%3A%2F%2Fapp.topspin.net%2Fapi%2Fv1%2Fartist%2F12053%2Fcampaign%2F10151864

//編輯2

我嘗試了@Jon Lin的示例,頁面加載異常,但確實加載了。 基本上,某些瀏覽器會加載正確的域,但資產(CSS和圖像不會加載),並且網絡檢查器也將這些路徑顯示為永久移動:

嘗試將您的最后一條規則更改為:

RewriteRule !^(?:index\.(html?|php)|)$ http://example.com/ [R=301,L]

原因是在將目錄索引映射到(類似於index.php )目錄之后,將重新處理規則,從而進行額外的重定向。

請注意,查詢字符串仍將在末尾。 這是因為無法與RewriteRule中的查詢字符串進行匹配。 您需要與%{QUERY_STRING}變量匹配。 為了擺脫查詢字符串,您需要添加一個? http://example.com/的末尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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