簡體   English   中英

Apache Mod_Rewrite動態URL的Htaccess

[英]Apache Mod_Rewrite Htaccess for Dynamic URL

我有這個鏈接

www.example.com/1/title

去哪了

www.example.com/post.php?author=1&title=title

因為這條規則

RewriteRule ^post/([0-9]+)/([\w-_:]+)/?$ post.php?author=$1&title=$2 [L,QSA,NC]

很好,但現在怎么辦呢,如果有人輸入www.example.com/post.php?author=1&title=title重定向到www.example.com/1/title

我花了幾個小時在網上研究這個,但信息含糊不清(至少對我來說)並且不起作用。

到目前為止,有兩件事讓我感到困惑

  • 將漂亮的URL寫入動態,然后動態變為漂亮 - 這不是創建循環嗎?
  • 我也想去301重定向的路線,但我找不到任何可行的代碼,從第一個鏈接獲取變量放入重定向。 在我的腦海中,301將是正確的選擇,但我看到很多人(例子)通過RewriteRule來做這件事。

我知道稍后可以通過使用$ 1和$ 2來訪問(組)...但是當嘗試反向時我無法使其工作。 例如:

RewriteRule ^post.php?author=([0-9]+)&title=([\w-_:]+)$ post/$1/$2

但就像我說沒有任何作用。 我一直在http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html這樣的網站上打我的腦袋,但我無法完全理解(或應用)我在那里閱讀的內容。 你能告訴我我做錯了什么或我該如何處理這個問題?

非常感謝你能給我的任何幫助

你需要一個像這樣的新規則:

RewriteCond %{THE_REQUEST} \s/+post\.php\?author=([^&]*)&title=([^\s&]+) [NC]
RewriteRule ^ post/%1/%2? [R=302,L]

RewriteRule ^post/([0-9]+)/([\w-_:]+)/?$ post.php?author=$1&title=$2 [L,QSA,NC]

暫無
暫無

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

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