я пытаюсь переписать URL из чего-то вроде этого:Htaccess для чистых URL-адресов без жесткого кодирования получить переменные
http://www.domain.com/index.php/service/variable1/value/variable2/value .... вплоть до 8 переменных.
Для этого:
http://www.domain.com/index.php?pagekey=service&variable1=value&variable2=value .... вплоть до 8 переменных.
Переменные будут меняться со страницы на страницу, поэтому я не могу их жестко закодировать в правиле перезаписи. Переменная и значение должны быть переменными htaccess.
Я следующий Htaccess код прекрасно работает на Apache 2.2.9 (Debian), но тот же код не работает на Apache 2.2.16 (Debian) ИЛИ апача 2.2.22 (Debian)
Кто-нибудь есть идеи относительно того, почему это может быть?
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{DOCUMENT_ROOT}/$1 -f
RewriteRule ^[^/]+/([^.]+\.(?:js|css|jpe?g|png|gif|php))$ /$1 [L,R=301,NC]
RewriteRule ^index/(.*)$ index.php?pagekey=$1
RewriteRule ^index.php/(.*)$ index.php?pagekey=$1
RewriteRule ^index/(.*)/(.*)/(.*)$ index.php?pagekey=$1&$2=$3
RewriteRule ^index.php/(.*)/(.*)/(.*)$ index.php?pagekey=$1&$2=$3
RewriteRule ^index/(.*)/(.*)/(.*)/(.*)/(.*)$ index.php?pagekey=$1&$2=$3&$4=$5
RewriteRule ^index.php/(.*)/(.*)/(.*)/(.*)/(.*)$ index.php?pagekey=$1&$2=$3&$4=$5
RewriteRule ^index/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)$ index.php?pagekey=$1&$2=$3&$4=$5&$6=$7
RewriteRule ^index.php/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)$ index.php?pagekey=$1&$2=$3&$4=$5&$6=$7
RewriteRule ^index/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)$ index.php?pagekey=$1&$2=$3&$4=$5&$6=$7&$8=$9
RewriteRule ^index.php/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)$ index.php?pagekey=$1&$2=$3&$4=$5&$6=$7&$8=$9
Есть ли причина, вы пытаетесь это сделать? Существующий синтаксис var1/var2/var3 намного читабельнее/легче для пользователя для повторного ввода, чем того, к которому вы пытаетесь переписать его. – BMac
Чтобы иметь доступ к переменным в PHP с использованием $ _GET вместо того, чтобы пытаться проанализировать URL. Пользователь всегда будет видеть первый пример URL, который я разместил, однако PHP увидит его как второе. – PHPNorton
Какая почтальон или ошибка вы получаете? Также вы всегда должны привыкнуть с помощью '[L]' в конце каждого RewriteRule –