htacces rewrite url - удалить имя папки из URL - PullRequest
0 голосов
/ 17 января 2011

Я пытаюсь переписать URL htaccess для следующих случаев:

www.website.com/index.php/admin/something => www.website.com/admin/something
www.website.com/index.php/website/something => www.website.com/something
www.website.com/index.php/login/something => www.website.com/login/something

Примечание: "что-то" может быть "что-то1 / что-то2 / что-то3" или "что-то1 / что-то2" или "что-то"

Я могу вырезать "index.php" с помощью:

RewriteEngine on

RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

, но я не могу найти способ удалить только "website /", а не "admin /" и "login /"оставшаяся часть URL.

1 Ответ

0 голосов
/ 17 января 2011

Если вы воспользуетесь этим подходом, вам, вероятно, придется указать каждую возможную входную ссылку, которая не должна отображаться на ваш контроллер «веб-сайта», переназначить ее на index.php / $ 1 и обрабатывать каждый другой запрос, как если бы это был метод веб-сайта.контроллер, сопоставив его с index.php / website / $ 1

Что-то похожее на приведенное ниже будет сопоставлять все, начиная с admin или логина с index.php и всего остального с контроллером сайта:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^admin.*
RewriteCond %{REQUEST_URI} ^login.*
RewriteRule ^(.*)$ index.php?/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}
RewriteRule ^(.*)$ /index.php?/website/$1 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...