簡體   English   中英

Apache htaccess 301重定向

[英]Apache htaccess 301 redirect

我想將URL從article.php?id = 123重寫為article / 123

我添加了以下規則,效果很好

  RewriteRule ^article/(.*) /article.php?id=$1 [PT]

我還想添加301重定向規則,以使搜索引擎知道article.php?id = 123應該移至article / 123。 我添加了以下規則,但似乎不起作用。

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

嘗試這樣:

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

您需要與實際請求而不是URI進行匹配,因為URI被其他規則重寫:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /article\.php\?id=([^\ ]+)
RewriteRule ^article\.php$ /article/%1? [R=301,L]

如果您與實際請求不匹配,則會發生重定向循環:

  1. 瀏覽器請求/article.php?id=123
  2. 服務器重定向到/article/123
  3. 瀏覽器請求/article/123
  4. 服務器內部將/article.php?id=123重寫為/article.php?id=123
  5. 服務器內部匹配並將瀏覽器重定向到/article/123
  6. 瀏覽器請求/article/123
  7. 從4重復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM