Я новичок .htaccess и регулярное выражение. У меня есть скрипт, который работает локально, но когда я загружаю его на живой сервер, он вызывает бесконечный цикл. Как я могу это исправить? На сайте, когда вы загружаете http://example.com
если вы не аутентифицированы, вы http:///example.com/index.php
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>