大家午安,
正常來說如果不想網站某個頁面被訪問,
例如不想要「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」可以訪問,
應該怎麼改寫呢?
正確來講,並不是把它們變成偽靜態
畢竟偽靜態在概念上來講,比較像是別名這類的東西
而是要搭配 RewirteCond,它算是一個條件式的東西。
符合或不符合 RewirteCond 時,才去做 RewiriteRule
另外,Apache 不是不支援參數的判斷,而是寫法上,可能會比較複雜一點。一般這種情況,在多數情況下,能從程式端下手就從程式端下手。
這是 Apache Rewrite 的文件,供你參考一下
https://httpd.apache.org/docs/current/mod/mod_rewrite.html
Welcome to my blog. https://blog.wawajohn.net/