2014-09-24 121 views
2

在你說做一些研究之前,我有一個我知道如何重定向301.如何使用動態生成的URL重定向301?

然而,這是一個相當具體的問題。

讓我有一種現代重寫生效:

RewriteRule ^/news/article/([^/]*)/$ /news/article.php?title=$1 [L] 

此輸出網址/新聞/條/標題/,但是我最近想刪除尾隨斜線

所以讀取網址/新聞/條/標題,這個很容易做到:

RewriteRule ^/news/article/([^/]*)$ /news/article.php?title=$1 [L] 

然而,當有人進入/新聞/條/標題/ 現在所以我的問題是有一種方式,我們重定向301,所以當用戶輸入/新聞/文章/標題/他們被定向到/新聞/文章/標題

我記得我想這工作的所有動態產生的網址..

回答

0

您應該實際上讓斜線可選:

RewriteRule ^/?news/article/([^/]*)/?$ /news/article.php?title=$1 [L,QSA] 

要刪除尾隨/斜線從URL中使用的重定向規則:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s] 
RewriteRule ^(.+?)/$ /$1 [R=301,L,NE] 
+1

我真的很喜歡這個可選的斜線方法!但刪除一個是我感覺最好的解決方案 – 2014-09-24 11:20:59

1

使用R=301標誌是這樣的:

RewriteRule ^/news/article/([^/]*)/$ /news/article/$1 [R=301] 
RewriteRule ^/news/article/([^/]*)$ /news/article.php?title=$1 [L] 

詳情請參閱apache documentation有關標誌