2017-06-03 138 views
0

我想將舊網址重新導向至新增附加參數htacces - 將舊網址重定向至新

如何防止創建多個youtube參數?

OLDhttp://example.com/lady-gaga-monster

http://example.com/lady-gaga-monster-youtube

目前的htaccess

RewriteEngine on 
RewriteRule ^(.*)-youtube?$ index.php?search=$1&source=youtube [L] 

我加入這行

RewriteRule ^(.*)$ http://example.com//$1-youtube [R=301,L] 

而且在瀏覽器 http://example.com/lady-gaga-monster-youtube-youtube-youtube-youtube-youtube

回答

1

您創建了一個無限循環的結果。您需要添加的RewriteCond這樣,如果請求的URL不「-youtube」結尾的規則將僅適用於:

RewriteEngine on 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
# external rewrite 
RewriteCond %{REQUEST_URI} !-youtube$ 
RewriteRule ^(.*)$ http://example.com/$1-youtube [R=301,L] 
# internal rewrite 
RewriteRule ^(.*)-youtube$ index.php?search=$1&source=youtube [L] 

而且一般提示:你應該總是喜歡在http服務器內這樣的規則(虛擬)主機配置,而不是使用動態配置文件(.htaccess樣式文件)。這些文件出了名的錯誤,很難調試,他們真的放慢了服務器。它們僅作爲最後一種選擇,用於您無法控制主機配置的情況(閱讀:真正便宜的託管服務提供商),或者您擁有依賴編寫自己的重寫規則的應用程序(這是一個明顯的安全噩夢)。

+0

嗨@arkascha,非常感謝你回答,但仍然無法工作:) – Anwar

+0

而「仍然不工作」是指什麼_exactly_?怎麼了?你是否真的清除了你的瀏覽器緩存?你在http服務器錯誤日誌文件中看到了什麼? – arkascha

+0

現在工作後,一點成本。非常感謝你。 – Anwar

相關問題