2013-07-30 22 views
-1

我想例如所有未知的URL重定向這樣的:如何將所有的長網址重定向到較短的版本?

http://www.website.com/title/.../... 

喜歡這個:

http://www.website.com/title 

我嘗試過的.htaccess文件看起來像這樣,但它似乎不工作:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} ^(.*)/.*$ 
RewriteRule ^.*/(.*)$ /$1 [R=301] 

我在想什麼?

+0

這不是很清楚你正在嘗試在所有做。 *「什麼都叫更長」*是什麼意思?您希望瀏覽器查看哪些網址與哪些網址實際指向期望的資源? –

+0

我有很多由搜索引擎索引的CMS生成的長url。我會將所有這些長網址重定向到我正在使用的標準短版網址。 – user2635661

回答

0

既然你想要的第一個冠軍,這應該工作:

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)/.*$ /$1 [R=301,L] 

對於index.php文件:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/index\.php [NC] 
RewriteRule^/%1 [R=302,L] 
+0

感謝Prix它正是我需要的。只有 – user2635661

+0

感謝Prix,太棒了!它工作正是我需要99%。只有http://www.website.com/index.php/.../...沒有重定向到http://www.website.com/index.php。我不知道爲什麼,我會嘗試在我的.htaccess中探索其他規則。 – user2635661

+0

因爲index.php是一個有效的文件,而'RewriteCond%{REQUEST_FILENAME}!-f'會阻止有效文件重定向,所以你需要一個不同的規則。 – Prix

相關問題