【发布时间】:2015-09-04 03:41:25
【问题描述】:
我是 .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>
【问题讨论】:
-
没有评论就投反对票???真的???非常感谢