Чистый цикл перенаправления URL

Это правда, что вы можете изменять форматы, не назначая объект. Но это не то поведение, на которое вы можете положиться. Это нежелательный дизайн;) и должен быть исправлен в следующих версиях, чтобы было безопаснее присвоить результат, если вы хотите, чтобы ваш код работал с будущими версиями.

9
задан prngleo 31 January 2009 в 16:06
поделиться

3 ответа

Добавьте, что это правило выше Вашего существующего переписывает правила прекратить перенаправлять, если запрос был уже перенаправлен однажды (касательно):

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
14
ответ дан 4 December 2019 в 13:50
поделиться

Вы могли проверить строку запроса на то, что первоначально требовали:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ (/[^\ ]*)\.php[?\ ]
RewriteRule \.php$ %1 [R=301,L]

О, и первый аргумент RewriteCond директива не является регулярным выражением, но просто строкой. Так выход . является неправильным.

1
ответ дан 4 December 2019 в 13:50
поделиться

Есть какая-то причина, по которой вы не можете использовать символ завершения строки, $?

RewriteRule ^/(.+)\.php$ /$1

перенаправит /page.php на / page, но не будет выполнять перенаправление на / page.

По сути, использование таких приемов, как установка переменных среды и добавление проверок для REDIRECT_STATUS, не будет очень надежным.

0
ответ дан 4 December 2019 в 13:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: