2014-02-16 63 views
0

感謝您的幫助! :)htaccess無限循環數

我有下一個URL:www.domain.com/folder/123-321-something.html

重定向應該是www.domain.com/folder/321-something-123.html

我的下一個htaccess的

RewriteCond %{HTTP_HOST} ^www.domain.com$ 
RewriteRule ^([a-zA-Z0-9-]*/)([0-9]+)-([a-zA-Z0-9-]*)\.html$ http://www.domain.com/$1$3-$2.html? [R=301,L] 

而這個網址的結果

重定向應該是www.domain.com/folder/something-123-321.html

我不知道如何執行規則只有一次,以避免循環。

另外我還有一個URL與www.domain.com/folder/123-321.html導致無限循環。

我讀到

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

我試着

RewriteCond %{HTTP_HOST} ^www.domain.com$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z0-9-]*/)([0-9]+)-([a-zA-Z0-9-]*)\.html$ http://www.domain.com/$1$3-$2.html? [R=301,L] 

但不起作用。

我希望找到解決這個問題的答案。

謝謝!

+0

我不明白你需要什麼。爲了使這個簡單。什麼是您的原始網址,以及您想要重定向到的新網址是什麼?那麼什麼是'東西'是那個詞,數字等等? –

回答

1

最後我得到的結果是{REQUEST_URI}指令。

當一個網址有具體的數字「 - 」在URL,重寫條件跳過的端部正id_product_numbers也不要陷入無限循環

RewriteCond %{HTTP_HOST} ^www.domain.com$ 
RewriteCond %{REQUEST_URI} !^/([a-zA-Z0-9-]*/)(1|3|5|7|24|212|4711|1881)-([0-9]+)\.html 
RewriteRule ^([a-zA-Z0-9-]*/)([0-9]+)-([a-zA-Z0-9-]*)\.html$ http://www.domain.com/$1$3-$2.html? [R=301,L] 
0

試試這個。當我進行測試運行時,它工作正常。我將該域添加到左側,並且它在循環之前似乎停止,因爲您已經擁有了R標誌。

RewriteRule ^www.domain.com/([a-zA-Z0-9-]*/)([0-9]+)-([a-zA-Z0-9-]*)\.html$ www.domain.com/$1$3-$2.html [R=301,L]

0

此規則會爲你工作,避免循環:

RewriteRule ^([a-z0-9-]+)/([0-9]+)-([a-zA-Z0-9-]*-[a-z]+)\.html$ /$1/$3-$2.html? [R=301,L,NC]