如果不滿足條件,我有一個重寫為/login的 htaccess。它適用于沒有 query_string 的 url。
但是我不知道如何將/reset?query_string包含到接受的條件中。并想排除/reset
/reset?6tdsBMxpeeJEDUvYzwKmLzIusLYLjgMtIj
RewriteEngine On
RewriteBase /index.php
RewriteCond %{REQUEST_URI} !^/login$
RewriteCond %{REQUEST_URI} !^/forgotten$
RewriteRule ^([^\.] )$ /login [R=301,L,QSD]
RewriteRule ^(/)?$ /login [R=301,L]
RewriteRule ^([^\.] )$ $1.php [NC,L]
uj5u.com熱心網友回復:
這是您的 .htaccess 的修改版本,其中不包括/reset?query:
RewriteEngine On
# /reset with query string
RewriteCond %{QUERY_STRING} .
RewriteRule ^(reset)/?$ $1.php [L,NC]
RewriteCond %{REQUEST_URI} !^/(forgotten|login)$ [NC]
RewriteRule ^([^.]*)$ /login [R=301,L,QSD]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.] )$ $1.php [L]
確保在清除瀏覽器快取后對其進行測驗。
uj5u.com熱心網友回復:
使用您顯示的示例和嘗試,請嘗試遵循 htaccess 規則檔案。確保在測驗 URL 之前清除瀏覽器快取。
此外,我正在使用 apache 的變數命名THE_REQUEST,我們可以處理 uri 和查詢字串。
RewriteEngine ON
RewriteBase /
##Rules for handling rest uri without query string.
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^reset/?$ /login? [R=301,L,NC]
##Rules for reset with uri and query string.
RewriteCond %{THE_REQUEST} \s/reset\?\S \s [NC]
RewriteRule ^ /reset? [R=301,NC]
##Rule for login page's backend rewrite.
RewriteRule ^login/?$ login.php [QSA,NC,L]
##Rule for forgotten page's backend rewrite.
RewriteRule ^forgotten/?$ forgotten.php [QSA,NC,L]
##Rules for non-existing pages should be served with index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/490496.html
標籤:阿帕奇 .htaccess 改写 url重写 请求参数
上一篇:如何在macOS上生成哈希鍵?
