Назад | Перейти на главную страницу

как переписать заданные URL

как я могу переписать

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" '