2015-04-08 4 views
1

я работаю на пользовательской MVC скороговоркой в ​​PHP, который после внедрения URL-адресHtaccess матч URL по категориям имени

www.test.com/module/controller/action?params

И по php я расщепляю url для поиска модулей, контроллеров, действий. Это работает хорошо.

У меня была ситуация, чтобы показать url как www.test.com/sale. Ранее мой url был www.test.com?id=1, где id - категория sale, и он будет вызывать соответствующий модуль, контроллер, действие php-скриптов.

Я использую следующий HTAccess

RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-l 
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 

Мое изменение переписывают не должно влиять на существующий поток, и мне нужно конкретно применить условие перезаписи, когда я ударил URL www.test.com/sale он должен вызвать www.test.com?id=1 как мудрый я могу использовать для любой другой категории ,

+0

является '/ sale' единственной категории или больше? – anubhava

+0

@anubhava У меня есть более чем одна категория. – mymotherland

+0

В этом случае правила перезаписи не могут переводить категорию в id, просматривая некоторую базу данных – anubhava

ответ

1

Вы можете сделать что-то вроде этого:

RewriteEngine on 

RewriteRule ^sale/?$ index.php?id=1 [QSA,NC,L] 
RewriteRule ^purchase/?$ index.php?id=2 [QSA,NC,L] 
RewriteRule ^admin/?$ index.php?id=3 [QSA,NC,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
+0

, когда я ударил http: // localhost/test/продажа, она идет на страницу индекса wamp. также существующий url идет wamp page – mymotherland

+1

получил его после удаления rewriteBase/:) Спасибо – mymotherland

+1

Добро пожаловать, рад, что это сработало. – anubhava

Смежные вопросы