выражение переименовать URL 2.3.1 - PullRequest
0 голосов
/ 23 ноября 2011

В EE 2.2.2 это в моем файле htaccess

RewriteRule ^(.*)$ /index.php/view/$1 [L] 

Позволяет мне переписать domain.com / index.php / view / phone в доменcom / phone .

В EE 2.3.1 это больше не работает.Кажется, проблема в system \ codeigniter \ system \ core \ URI.php , и я вижу, что с этим файлом мало что изменилось.Если я заменю URI.php версией 2.2.2, она снова заработает.У меня вопрос, что изменилось и как мне заставить это работать снова.

1 Ответ

1 голос
/ 24 ноября 2011

Обновленный ответ

Через некоторое время после размышлений (и тестирования) я нашел альтернативное решение, которое может соответствовать вашим потребностям с обновленным EE.

Предполагается, что ваши правила переписывания выглядят следующим образом:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

Теперь я предлагаю, чтобы ваша группа шаблонов view была индексной группой шаблонов. В вашем шаблоне индекса в группе шаблонов view может быть следующее:

{exp:channel:entries channel="view_channel" require_entry="yes"}
{if no_results}
{embed="a_template_group/my_normal_frontpage"}
{/if}
<DOCTYPE html>
<html>
    <head>
        <title>{title}</title>
    </head>
    <body>
        <h1>{title}</h1>
    </body>
</html>

{/exp:channel:entries}

Это позволяет вам, без добавления других правил перезаписи, заставить ваших посетителей перейти на http://example.org/phone, и шаблон представления / индекса попытается найти запись с идентификатором записи, помеченным как «телефон». Если эта запись не может быть найдена (часть {if no_results}), вставьте другой шаблон. В этом случае я бы предположил, что вы хотели бы показать какую-то главную страницу.

Это также позволяет вам в группе шаблонов view создавать обычные шаблоны, такие как view/create_entry, которые будут отображаться при переходе к http://example.org/create_entry

Это должно работать - и его легко настроить в соответствии с вашими потребностями.

...