Мой файл htaccess вызывает многократные обращения к одной странице? - PullRequest
0 голосов
/ 05 августа 2009

Я думаю, что мой htaccess-файл, который использует mod_rewrite, вызывает мои страницы вызываться более одного раза. Кто-нибудь может увидеть, могло ли это произойти с моим текущим файлом htaccess? Или есть ли такая возможность? Это происходит только на странице view.php (из того, что я видел).

# REWRITE DEFAULTS
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.mysite\.com$ [NC]
RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L]

# /view.php?t=h5k6 externally to /h5k6
RewriteCond %{THE_REQUEST} ^GET\ /view\.php
RewriteCond %{QUERY_STRING} ^([^&]*&)*t=([^&]+)&?.*$
RewriteRule ^view\.php$ /%2? [L,R=301]

# /h5k6 internally to /view.php?t=h5k6
RewriteRule ^([0-9a-z]+)$ view.php?t=$1 [L]

Что происходит в моих PHP-скриптах, так это то, что они вызываются более одного раза или, по крайней мере, функция вызывается более одного раза, хотя я убедился, что она вызывается один раз!

Спасибо всем

Ответы [ 2 ]

1 голос
/ 06 августа 2009

Эти условия и правила mod_rewrite не будут вызывать скрипт более одного раза. Сами правила можно вызывать несколько раз. Каждый раз, когда URL-адрес успешно переписывается в новый запрос, новый запрос снова вызывает правила. Однако это прекратится, как только «реальный» ресурс (скрипт, веб-страница и т. Д.) Будет идентифицирован и получен один раз.

Есть ли на вашей странице другие ссылки, которые могли бы сделать еще один запрос? Например, тег IMG заставит браузер сделать другой запрос. Эти запросы приведут к повторному запуску правил. Похоже, что-то с точкой (например, picture.jpg) не будет соответствовать вашим правилам, но что-то еще может.

Другие вещи, которые нужно искать, это CSS и скрипты, на которые ссылаются.

0 голосов
/ 05 августа 2009

Не читая ваш вставленный код, я хочу сказать нет. htaccess проходит через каждую строку и останавливается на первом правиле, которое соответствует запросу

...