#php #.htaccess #mod-rewrite #joomla
#php #.htaccess #мод-перезапись #joomla
Вопрос:
Я пытаюсь сделать исключение для htaccess по умолчанию из Joomla 1.6.3 за наличие удобного URL для моих собственных php-скриптов.
Идея заключается в том, что следующий уже рабочий URL: www.mysite.com/wrx/system/index.html?parameter1=AE23HtySght34P может вызываться извне следующим образом, но также отображается как: www.mysite.com/wrx/system/AE23HtySght34P/
Правило, которое я поместил в htaccess, работает, но возвращает его к отображению php с параметром…
Будем признательны за любую помощь.
Саймон
.htaccess:
Options FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode[^(]*([^)]*) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s) cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
RewriteRule ^wrx/system/([A-Za-z0-9-] )$ /wrx/system/index.php?id_parameter1=$1 [R=301,L]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
Ответ №1:
Поместите это сразу после RewriteEngine on
, чтобы оно оценивалось первым.
RewriteRule /wrx/system/([a-zA-Z0-9] )$ /wrx/system/index.php?id_parameter1=$1 [L]
- ([a-zA-Z0-9] ) $ перехватывает все (1 ) символы (не только цифры) до конца url
- [L] = последнее правило (для этой оценки перезаписанный URL-адрес снова будет оценен в соответствии с правилами)
Комментарии:
1. Спасибо Гвидо 🙂 Я только что отредактировал свой вопрос в то же время, когда вы ответили. Итак, это действительно работает, как вы сказали (уже нашел это), но это не совсем то, что я хочу… Если возможно, я хочу, чтобы URL отображался следующим образом: www.mysite.com/wrx/system/AE23HtySght34P/
2. @Simon удалите R= 301 из параметров, что связано с перенаправлением http 301 (выполняется новый запрос)