nginx重定向帶參數的問題
滿天的星座
滿天的星座 2017-05-16 17:15:56
0
1
834

嗯,我只把關鍵字換成aaabbb了。
下面這個意思是我訪問 /aaabbb/anime 實際上是請求的/ab_anime.php

#
location /aaabbb/ {
        rewrite ^/aaabbb/(\w+)$ /ab_.php last;
        rewrite "/aaabbb/(\w+)/(\d{1,2})$" /aaabbb/?id=? permanent;
    }

然後我想弄個第一次點進去就帶參數,同時網址列上不能看到,然後每次刷新的話就沒參數。

所以查了一下不帶參數是後面加問號,但發現沒用。
是不是因為我自己拼了$1?id=$2這個的緣故。
只是在網址列給後面加的參數會不見。然而並沒有什麼卵用。

剛才又看到了這個

    rewrite  ^/test.php  /new  permanent;       //重写向带参数的地址

    rewrite  ^/test.php  /new?  permanent;      //重定向后不带参数

    rewrite  ^/test.php   /new?id=$arg_id?  permanent;    //重定向后带指定的参数

我都不知道怎麼辦了…難道是要再寫一條然後用$arg? ? ?

滿天的星座
滿天的星座

全部回覆(1)
習慣沉默

我覺得題主把問題複雜化了。
當然我並不確定我真的理解了題主的需求,試闡述如下:

  1. 用戶請求/aaabbb/anime

  2. nginx正確解析為/aaabbb.php?id=anime,回內容A給使用者

  3. 用戶的網址列顯示為/aaabbb,並享受內容A

  4. 用戶刷新瀏覽器,定向為/aaabbb,享受/aaabbb.php的內容B。 (或繼續閱讀內容A)

這裡有一個bug,請求為/aaabbb/anime的時候,網址列最多變成/aaabbb/anime#xxxxxx,#之前是不會變得,#之後的是hash。如果想要把網址列變成/aaabbb,必須要有一個redirect的動作。

我的思路如下:(如果採取了答案,請評論我解決方案裡不正確的內容)

  1. nginx 重寫策略為 rewrite ^/aaabbb/(w+)$ /redirect.php?target= last;

  2. redirect.php把target寫入session,並返回redirect到/aaabbb上(能且只能透過此方法修改網址列)

  3. /aaabbb/導航到index.php,讀取session裡的target,抹掉(或不抹掉)它,呼叫對應php檔案回傳內容。

  4. 刷新/aaabbb時,導覽到index.php,同樣根據session來回應請求。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!