Я пытаюсь создать чистые URL-адреса на своем веб-сайте. Теперь мне удалось настроить apache, поэтому каждый запрос, такой как mysite.com/page, будет работать. Но я также хочу, чтобы запросы для mysite.com/page.php будут перенаправлены на mysite.com/page. Я установил переменные окружения в файле .htaccess, чтобы проверить, если я уже был перенаправлен для предотвращения петель, но я все еще получаю их ... Вот .htaccess:Очистка URL-адреса Redirect Loop
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase/
# set the variable
RewriteRule ^$ - [L]
RewriteRule ^(.*)$ $1 [E=REWROTE:0]
# this works fine
# make mysite.com/page work and set REWROTE variable to 1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L,E=REWROTE:1]
# but if i enable this, i get redirected and then stuck in a loop
# redirect mysite.com/page.php to mysite.com/page , but only if REWROTE not 1
#RewriteCond %{ENV:REWROTE} !^1$
#RewriteRule ^(.*)\.php$ $1 [R=301,L]
Спасибо!
Добро пожаловать к переполнению стека. Спасибо, что четко сформулировали ваш вопрос, предоставили код и показали, что работает, а что нет. Если у вас есть полезная информация в ваших журналах apache, сообщите об этом тоже. Иногда проблемы с перенаправлением становятся более очевидными, когда вы видите журналы. –
К сожалению, у меня нет доступа к этой информации. – oxeleo