我是新手.htaccess和正则表达式。我有一个在本地工作的脚本,但是当我将它上传到实时服务器时,它会导致无限循环。我怎样才能解决这个问题?在您加载http://example.com
的网站上,如果您未经身份验证,则会转到http://example.com/auth/
登录表单,否则会显示http:///example.com/index.php
的内容。它在本地工作正常,但是当我在实时服务器上传时,它找不到auth.php
,因此它重定向到索引页面,并且由于用户未经过身份验证,因此会向auth.php
发送无限循环。请帮忙。感谢。
这是我的档案
Options -Indexes
Options -MultiViews
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# remove php extensions (only for GET method)
RewriteCond %{THE_REQUEST} ^GET\ /(.+)\.php(?:\?|\s) [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ %1/? [L,R=301]
# don't touch other existing files/folders
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# force trailing slash
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^(.+)$ $1/ [L,R=301]
# rewrite extensionless php files
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+)/$ $1.php [L]
#rewrite path to file eg http://example.com/auth/recover to http://example.com/auth.php?a=recover
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/([^/]+)/?$ $1.php?a=$2 [QSA,L]
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ $1.php?a=$2&id=$3 [QSA,L]
# finally, if not found
RewriteRule ^ index.php [L]
</IfModule>
答案 0 :(得分:1)
在谷歌搜索和阅读,尝试和测试后,我找到了解决godaddy有趣的.htaccess问题的方法。我在这里解决了。
答案 1 :(得分:0)
您可以重新排序规则:
r = requests.post(main_url, data=login, allow_redirects=false)