[英].htaccess: Slugs and file extensions
我正在尋找一種方法來禁止訪問文件,如果沒有通過slug訪問。 例如,我有/members.php?page=login
。 我想通過強制用戶訪問/login
(將長URL重定向到一個短的slu)來改變它,並阻止從長URL直接訪問。
當我嘗試做類似的事情:
RewriteRule ^members.php?page=login login [L,R=301]
RewriteRule ^login members.php?page=login [L]
它變成了一個無限循環(正如firefox所說:“Firefox檢測到服務器正在以永遠不會完成的方式重定向該地址的請求。”)。
我在文件開頭啟用了“選項”( Options +FollowSymLinks -MultiViews
)
我怎么能做對的?
謝謝。
嘗試這個:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^login$ index.php?page=login [L]
您可以使用以下內容:
RewriteEngine on
# externally redirect "/members.php?page=login" to "/login"
RewriteCond %{THE_REQUEST} /members\.php\?page=login [NC]
RewriteRule ^ /login [L,R]
#rewrite "/login" back to "/members.php?page=login"
RewriteRule ^login members.php?page=login [L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.