Почему мое правило htaccess не переписывает URL - PullRequest
0 голосов
/ 25 августа 2011

Хорошо, поэтому у меня есть этот URL в моем приложении opencart, и он хорошо работает

http://site.com/index.php?route=information/contact

, но клиенты ненавидят URL и хотят

http://site.com/contact

Я подумал, что я мог бы просто сделать этов моем htaccess и все было бы хорошо, но посещая URL я ничего не получаю

RewriteRule ^(contact)$ index.php?route=information/contact  [L,QSA]

любые идеи

вот мой htacess

RewriteBase / 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

RewriteRule ^contact$ /index.php?route=information/contact  [L,QSA]

Ответы [ 4 ]

5 голосов
/ 25 августа 2011

удалите скобки

RewriteRule ^contact$ index.php?route=information/contact  [L,QSA]

Ваш .htaccess должен выглядеть следующим образом:

RewriteEngine On
RewriteBase / 
RewriteRule ^contact$ /index.php?route=information/contact  [L,QSA]
RewriteCond %{REQUEST_URI} !^/contact$
RewriteRule ^([^?]*) index.php?route=$1 [L,QSA]
2 голосов
/ 25 августа 2011

[OpenCart] Включить перезапись URL для SEO

  1. Войти в панель управления администратора
  2. Выберите Admin> Конфигурация> Настройки> Сервер
  3. Выберите опцию «SEO URL» для да.
  4. Вы сделали.
2 голосов
/ 25 августа 2011

Включен ли mod_rewrite? Кроме того, вам, возможно, придется добавить

RewriteEngine on

перед вашими RewriteRules

1 голос
/ 25 августа 2011

Попробуйте добавить / перед index.php

RewriteRule ^contact$ /index.php?route=information/contact  [L,QSA]
...