2013-11-16 4 views
1

Я пытаюсь найти лучшее решение для решения проблемы. Я не использую никаких фреймворков, таких как silex, Yii и т. Д. Таким образом, у меня нет общего механизма обработки маршрутизации, предоставляемого этими фреймами. Мои шаблоны URL, какМаршрутизация php-запроса с использованием .htaccess

routing.php 
routing.php?action=create 
routing.php?action=list&id=1 

и полученный URL я хочу иметь в

/routing 
/routing/create 
/routing/list/1 

у меня есть некоторые очень базовое понимание .htaccess, ниже мои текущие отливок

RewriteEngine On 
RewriteBase /name/ 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

Эти коды хорошо работают, чтобы поместить любой .php в/что-то. Однако я застрял, чтобы продолжить генерировать общее решение для получения/routing/create и /routing/list/1. Ценуйте за любую помощь.

ответ

3

У вашего .htaccess, как это:

RewriteEngine On 
RewriteBase /name/ 

RewriteCond %{DOCUMENT_ROOT}/name/$1.php -f 
RewriteRule ^([^/]+)/([^/]+)/?$ $.php1?action=$2 [L,NC,QSA] 

RewriteCond %{DOCUMENT_ROOT}/name/$1.php -f  
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ $1.php?action=$2&id=$3 [L,NC,QSA] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [L] 
+0

привет, можно ли заменить «маршрутизации» слова с регулярным выражением, которое можно взять в любое имя? – onegun

+0

ok попробуйте отредактировать код сейчас. – anubhava

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