2015-08-22 127 views
1

有時我發現我的網站上的網址出現在mywebsite_smf_smf1_session=在htaccess中重寫包含...的網址

例如:

http://mywebsite.com/index.php​?mywebsite_smf_smf1_session=6goevo28​vf18ubqgb5uh6r08b2&topic=332242​.msg916981 

http://mywebsite.com/index.php​?mywebsite_smf_smf1_session=6gqvo88l​u5fnl1qmj7temt0113&topic=316196​.msg931242 

包含mywebsite_smf_smf1_session=###不應該在URL,但鏈接仍然重定向到正確的頁面的一部分。

我想知道我該如何使用mod_rewrite的的.htaccess ,這樣,當有人點擊包含mywebsite_smf_smf1_session=###&一個URL,它不包含它會自動恢復到版本:

點擊:

的http:// mywebsite.com/index.php mywebsite_smf_smf1_session = 6gqvo88l u5fnl1qmj7temt0113 &話題= 316196 .msg931242

變爲:

的http:// mywebsite.com/index.php話題= 316196 .msg931242

+1

聽起來像你在那裏有一個更大的問題。我認爲你使用的是論壇包,而你的數據庫用戶名是mywebsite_smf。沒有真正的理由說明論壇包應該製作這種鏈接 - 會話令牌理想情況下應該用cookies來完成。查看配置文件,或者在可能的情況下升級系統!看起來容易受到各種攻擊。 – CJxD

+0

我同意。我知道問題出在哪裏,但我需要一個快速解決方案來止血。 –

回答

1

您可以在DOCUMENT_ROOT/.htaccess文件中使用這樣的規則:

RewriteEngine On 

RewriteCond %{QUERY_STRING} ^mywebsite_smf_smf1_session=[^&]*(?:&(.*))?$ [NC] 
RewriteRule ^index\.php$ %{REQUEST_URI}?%1 [NE,L,NC,R=302] 
+0

謝謝@anubhava, 但我得到一個404錯誤。 http://mywebsite.com/index.php?** mywebsite_smf_smf1_session = 5lj4j3fi 5g2mc2sa5r9jtb5645&**行動=加勒RY \t 沒有成爲 \t http://mywebsite.com/index.php ?行動=加勒瑞 –

+0

是的,它不工作,不幸的是。我像你說的那樣將它添加到.htaccess中,當我訪問包含smf1_session的網站時,它會重定向到404錯誤,找不到頁面。 (dot)com部分怎麼樣? –

+0

檢查您的URL,因爲它可能有一些不可打印的字符。這個規則對我的Apache使用'/index.php?mywebsite_smf_smf1_session=5lj4j3fi%E2%80%8B5g2m c2sa5r9%E2%80%8C%E2%80%8Bjtb5645&action = gallery'正常工作,並刪除第一個查詢參數。 – anubhava