簡體   English   中英

帶有可變參數的.htaccess中的重定向並通過

[英]Redirection in .htaccess with variable parameters and pass through

我在找出正確的條目放入.htaccess文件時遇到了麻煩。

我想做的是:

1)允許對某些文件類型的所有請求正常工作。 (即jpg | gif | png | css | js | ico)

這將使網頁包含的所有文件都能正常工作。

2)所有“登錄”請求都將重定向至登錄頁面,並帶有參數。 例如

/login
/Login        (different case)
/login/
/login/index.py
/login/scipt/index.py
/login?id=1&attr=foobar
/login/index.py?mode=1&attr=foobar?name=Billy
/login/scipt/index.py?index=999
/login/?anotherparam=value      (basically, the parameter list can vary)

所有應重定向到:

/login.py

那些具有GET參數的用戶應重定向至:

/login.py?(copied list of parameters without these brackets)

3)其他所有內容都應重定向到根目錄(即“ /”),並保留所有參數。 例如

/NotAPage.html
/NotAFolder/
/NotAFolder/NotAPage.html
/NotAPage.html?v=1&k=2
/NotAFolder/?a=2
/NotAFolder/NotAPage.html?a=99&b=55&c=99   (again, the parameter list can vary)

所有應重定向到:

/

那些具有GET參數的用戶應重定向至:

/?(copied list of parameters without these brackets)

到目前為止,我已經做到了:

#Make PY (Python) files executable outside of CGI-BIN
AddHandler cgi-script .py
Options +ExecCGI

# Turn on URL rewriting engine
RewriteEngine On

# Allow these file types to pass through untouched
RewriteCond %{REQUEST_URI} !\.(jpg|gif|png|css|js|ico)$
# Redirect all other requests to index.py
RewriteRule (.*) index.py [L,PT]

我相信,這使所有內容(后綴列表除外)都可以通過參數重定向到index.py,但是還不能滿足我的需要。

誰能指出我正確的方向?

AddHandler cgi-script .py
Options +ExecCGI

RewriteEngine On

RewriteCond %{REQUEST_URI} !\.(jpg|gif|png|css|js|ico)$ [NC]
RewriteCond %{REQUEST_URI} !^login [NC]
RewriteRule . index.py [QSA,PT]

RewriteCond %{REQUEST_URI} !\.(jpg|gif|png|css|js|ico)$ [NC]
RewriteCond %{REQUEST_URI} ^login [NC]
RewriteRule . login.py [QSA,PT]

PT標志暗含L標志:為了將請求傳遞到處理的下一階段,將停止重寫。

請注意,在每個目錄的上下文中(例如<Directory>節或.htaccess文件中都隱含了PT標志)。 唯一可以避免的方法是重寫為-

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM