Я строю сайт, используя Slim, который предлагает следующие .htaccess
код для создания красивых URL-адресов:301 перенаправления URL-адреса, которые также переписаны
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [QSA,L]
Это означает, что URL, как http://example.com/account/login
будет псевдоним для http://example.com/index.php/account/login
, который затем обрабатывается моим фронтальным контроллером. Все идет нормально.
Однако, если кто-то явно переходит к
http://example.com/index.php/account/login
,
Я хотел бы, чтобы первый перенаправить на:
http://example.com/account/login
,
и затем псевдоним для
http://example.com/index.php/account/login
.
Таким образом, пользователь увидит http://example.com/account/login
в своей навигационной панели.
Как я могу обрабатывать оба этих правила одновременно в .htaccess
и, самое главное, без жесткого кодирования хоста и домена (http://example.com
) в .htaccess
?
Это также должно работать в подкаталоге, например:
http://example.com/site1/index.php/account/login
-> http://example.com/site1/account/login
С файлом .htaccess
находится в site1
директории относительно корня документа, и без явного ставить site1
в .htaccess
.
Хм, я видел ваш ответ в другом вопросе, но, похоже, он не работает для меня. Если у меня есть '^' в начале шаблона «RewriteRule», разве это не попытка сопоставить URL с самого начала? – alexw
Этот ответ на самом деле правильный - не уверен, что вы подразумеваете под совпадением URL-адреса в самом начале ... Это просто не перенаправление? –
Это работает для чего-то вроде http: // localhost/index.php/blah', но не 'http: // localhost/site1/index.php/blah' (предполагая, что мой файл' .htaccess' находится в '/site1' относительно моего корня документа). – alexw