|
|
|
| Здравствуйте.
На моём сервере необходимо выполнить следующее внутреннее преобразование:
http://www.somesite.ru/feedback/contact/a23aab43bs -> http://www.somesite.ru/feedback/contact/?id=a23aab43bs
Для этого я использовал следующий код в .htaccess:
RewriteEngine On
RewriteBase /feedback/contact/
RewriteCond %{REQUEST_URI} ^/feedback/contact/(.*)$ [NC]
RewriteCond %{REQUEST_URI} !^/feedback/contact/index.html(.*)$ [NC]
RewriteRule ^(.+)$ ?id=$1
|
Всё хорошо, но только есть одна проблема с полноценностью преобразования. Вместо того, чтобы:
http://www.somesite.ru/feedback/contact/a23aab43bs.html?parametr=value -> http://www.somesite.ru/feedback/contact/?id=a23aab43bs.html%3Fparametr=value
mod_rewrite отбрасывает всё, что находится после знака вопроса и получается следующее:
http://www.somesite.ru/feedback/contact/a23aab43bs.html?parametr=value -> http://www.somesite.ru/feedback/contact/?id=a23aab43bs.html
В документации по mod_rewrite (http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html) сказано, что mod_rewrite должен кодировать знак вопроса и представлять в URL-безопасном виде, но, как видно из примера, данное не происходит.
Помогите, пожалуйста! | |
|
|
|
|
|
|
|
для: Nixon
(10.03.2006 в 18:35)
| | Попробуйте следующий код:
RewriteEngine On
RewriteBase /feedback/contact/
RewriteCond %{REQUEST_URI} ^/feedback/contact/(.*)$ [NC]
RewriteCond %{REQUEST_URI} !^/feedback/contact/index.html(.*)$ [NC]
RewriteRule ^(.+)$ ?id=$1&%{QUERY_STRING}
|
| |
|
|
|
|
|
|
|
для: JIEXA
(11.03.2006 в 01:45)
| | Большое спасибо за совет, JIEXA!
В модифицированном виде вариант решения поставленной задачи выглядит так:
RewriteEngine On
RewriteBase /feedback/contact/
RewriteCond %{REQUEST_URI} ^/feedback/contact/(.*)$ [NC]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.+)$ ?id=$1 [L]
RewriteCond %{REQUEST_URI} ^/feedback/contact/(.*)$ [NC]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^(.+)$ ?id=$1?%{QUERY_STRING}
|
Осталось толька проблема его оптимизации... Мне так кажется, что на mod_rewrite это сделать будет слегка проблематично... | |
|
|
|