我在输入正确的条目时无法输入我的.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)其他所有内容都应重定向到root(即'/')以保留任何参数。例如
/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,但它还没有完成我所需要的一切。
有人能指出我正确的方向吗?
答案 0 :(得分:1)
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
标志:为了将请求传递到下一个处理阶段,将停止重写。
请注意PT
标记隐含在每个目录上下文中,例如<Directory>
部分或.htaccess
文件中。避免这种情况的唯一方法是重写为-
。