Переписать правило index.php? / Controller / method / param в / controller / method / param - PullRequest
0 голосов
/ 11 мая 2010

Мне нужно правило перезаписи для этого URL

http://localhost/~user/frame/lib/index.php?/controller/method/12/22/

Как я могу переписать это, чтобы я мог назвать это так

http://localhost/~user/frame/lib/controller/method/12/22/

Какое правило перезаписи для вышеуказанной проблемы? Я надеюсь, что смогу объяснить свой вопрос ясно.

Ответы [ 2 ]

1 голос
/ 11 мая 2010

Попробуйте это правило:

RewriteRule $2 !^index\.php$
RewriteRule ^(/~[^/]+/[^/]+/[^/]+)(/.*)? $1/index.php?$2

В зависимости от того, где вы хотите использовать это правило (мое предложение относится к конфигурации сервера / виртуального хоста), вам может потребоваться удалить префикс контекстного пути из шаблона. Так что если вы хотите использовать правило в файле .htaccess в / ~ user / :

RewriteRule $2 !^index\.php$
RewriteRule ^([^/]+/[^/]+)(/.*)? $1/index.php?$2

Или, если в / ~ user / frame / lib / :

RewriteRule $0 !^index\.php$
RewriteRule .* index.php?/$0
0 голосов
/ 11 мая 2010
RewriteRule ^(.*)lib/(.*)$ / $1lib/index.php?/$2

Это самый простой способ, но не самый надежный, так как он может испортить другие URL-адреса. Поэтому стоит тщательно проверить или опубликовать весь файл .htaccess.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...