大家午安,
正常來說如果不想網站某個頁面被訪問,
例如不想要「a.php」被訪問,其他頁面都可以訪問的話,
<Files a.php>
order allow,deny
deny from all
</Files>
這樣設置就沒問題了。

但如果不想網站某個動態頁面被網問,
例如不想要「b.php?id=1」被訪問,不過「b.php?id=2」要可以訪問,
<Files b.php?id=1>
order allow,deny
deny from all
</Files>
這時候上述的語法會沒有作用,但如果同第一段的設置方法,
<Files b.php>
order allow,deny
deny from all
</Files>
會變成「b.php?id=1」及「b.php?id=2」都不能訪問。

請問如果只是想要「b.php?id=1」不能訪問而「b.php?id=2」可以訪問,
應該怎麼改寫呢?
jack265s wrote:
大家午安,正常來說如...(恕刪)

要不要直接寫判斷式在PHP檔內就好?
有授權才顯示內容,否則就顯示拒絕存取或跳轉

keroro026 wrote:
要不要直接寫判斷式...(恕刪)
意思是,動態頁面沒有辦法使用.htaccess這樣設置的意思嗎?
用 URL Rewrite 的功能應該可以達到你要的目的。
Welcome to my blog. https://blog.wawajohn.net/

John wrote:
用 URL Rewrite...(恕刪)
您的意思是,先把「b.php?id=1」寫成偽靜態,然後再針對偽靜態去去重複上面的步驟這樣嗎?
不過這會有個問題,偽靜態是新增一個有序的網址,並非是強制301,這樣訪客只要輸入動態的網址一樣能訪問...
jack265s wrote:
大家午安,正常來說如...(恕刪)

apache似乎沒支援參數判斷
用php程式判斷吧!
我寫得有點簡化了

正確來講,並不是把它們變成偽靜態
畢竟偽靜態在概念上來講,比較像是別名這類的東西

而是要搭配 RewirteCond,它算是一個條件式的東西。
符合或不符合 RewirteCond 時,才去做 RewiriteRule

另外,Apache 不是不支援參數的判斷,而是寫法上,可能會比較複雜一點。一般這種情況,在多數情況下,能從程式端下手就從程式端下手。

這是 Apache Rewrite 的文件,供你參考一下
https://httpd.apache.org/docs/current/mod/mod_rewrite.html
Welcome to my blog. https://blog.wawajohn.net/
樓主到底是會不會改php?否則為什麼要一直迴避改php這種最直接的做法?
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!