Как я могу заставить обработку ... / IH / ... как PHP-скрипт - PullRequest
1 голос
/ 16 июня 2011

У меня есть множество сценариев index.php, использующих оптимизированный для SEO формат arg, такой как

example.com / path / to / index.php / opt / arg

, и я хотел бы переписать илизаставить обработчик иметь

example.com / path / to / ih / opt / arg

и, таким образом, сократить часть index.php.[Хорошо, я бы хотел полностью избавиться от этого, но не хочу возвращаться к формату

example.com / path / to /? Opt & arg

.] Это должнообычно поддерживаются в любом каталоге на сайте, вместо того, чтобы требовать изменения .htaccess, alias или http.conf.Для моего следующего трюка я расширю «ih» для PHP, чтобы также охватить «ip» для Perl, «ir» для Ruby, «iy» для Python и, возможно, другие.[Моя первоначальная мысль была просто «я», но потом я понял, что есть и другие языки, для которых я тоже этого хочу.]

Я пытался играть с MultiViews, но явно не знаю, что яделаю :-) Я много смотрел на mod_rewrite, но просто не вижу, как реализовать что-то вроде этого.Я быстро взглянул на форсирование обработчика, но 1) я не уверен, что это действительно то, что я имею в виду (и поэтому я заранее прошу прощения за, возможно, использование неправильного термина) и 2) добавил забавную задачу запуска 1.3, где я размещаю против2.2 дома: -)

Предложения?

TIA & HAND

: - D

David TG http://justpickone.org/davidtg/email/

1 Ответ

1 голос
/ 16 июня 2011

Поскольку вы рассматривали возможность использования mod_rewrite, я собираюсь предположить, что вы не возражаете против одноразового изменения на .htaccess или httpd.conf, но просто не хотите делать это для каждого индекса.php на вашем сайте.(Поправьте меня, если я ошибаюсь!)

Попробуйте:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*\/)?ih(\/.*)?$ $1index.php$2 [L,QSA]

Возможно, вам не понадобятся два RewriteCond с.Они просто проверяют, что исходный URL не существует как фактический файл в системе, перед тем как переписать этот URL.

...