Apache RewriteCond из результата php-запроса - PullRequest
1 голос
/ 24 января 2010

Я хотел бы добавить условие перезаписи в мой htaccess, которое было бы истинным, если вызов php-файла возвращает «true» или false в противном случае. Я использую ключ -U в моем RewriteCond для запуска подзапроса, и если условие не выполняется, скрипт PHP возвращает ошибку 404, которая вызывает rewriteCond.

Моя цель - запустить сервис сокращения URL параллельно с веб-сайтом PHP.

Вот мой текущий .htaccess

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond /smallurl/%{REQUEST_URI} !-U
RewriteRule (.*) index.php/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) smallurl/$1 [L]

Какая лучшая практика для достижения чего-то подобного? Рекомендации, вещи, которые я должен знать? Есть ли способ избежать подзапроса или хотя бы ускорить его?

Спасибо

1 Ответ

0 голосов
/ 24 января 2010

Вы можете использовать RewriteMap для передачи REQUEST_URI в php-файл, который возвращает результат - я думаю, что это будет работать с RewriteCond, хотя вы можете найти его лучше стандартным RewriteRule

Спецификация на http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteMap

По сути, ваш php-файл необходимо прочитать из php: // stdin и вывести результат в stdout

Извините, я не могу быть более полезным, это не то, чем я занимался долгое время!

...