как я могу переписать
www.mysite.com/someURLhere
в
www.mysite.com/ping.php?url=someURLhere
не принимая локальные файлы и каталоги за домены.
так что я не хочу
www.mysite.com/index.php
www.mysite.com/admin/
переписать на
www.mysite.com/ping.php?url=index.php
www.mysite.com/ping.php?url=admin/
попробуйте этот взломанный htaccess joomla:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/ping.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule ^(.*)$ ping.php?url=$1 [L]
Мне может быть проще перенаправить URL-адреса в «виртуальную» подпапку, которой на самом деле не существует. Я не уверен, что это сработает для вашего дизайна, но я определенно рекомендую рассмотреть его, поскольку это облегчит вашу жизнь при написании правил перезаписи, а также предотвратит случайное перезапись существующего файла.
www.mysite.com/p/someURLhere
(где / p / фактически не существует в файловой системе) перенаправляет на www.mysite.com/ping.php?url=someURLздесь
Тогда вашему правилу перезаписи потребуется меньше условных выражений.
Что сказал Денни Халим
Еще немного взломал (не пробовал, но выглядит нормально: s)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/ping.php
RewriteCond %{REQUEST_URI} (/.*)$ [NC]
RewriteRule ^(.*)$ ping.php?url=$1 [L]
в основном говорит: «если URL-адрес не указывает на существующий файл» «если URL-адрес не указывает на существующий каталог», если URL-адрес не является «/ping.php» «« соответствует всему », переписать на "ping.php? url = $ 1" '