Дружественный URL с помощью ColdFusion требуется [дублировать]

Для новой настройки LAMP running php 7 отредактируйте файл /etc/httpd/conf/httpd.conf. Примечание. Обязательно сделайте резервную копию для него перед тем, как что-либо изменить.

Вставьте это в самое нижнее файла:

<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

Затем найдите LoadModule и вставьте следующую строку:

LoadModule php7_module modules/libphp7.so

Эта строка просто попросит httpd загрузить модуль php 7

Затем перезапустите httpd

4
задан Deepak Kumar Padhy 17 December 2014 в 06:55
поделиться

3 ответа

Я не рекомендую использовать отсутствующий обработчик файла (или CF onMissingTemplate). В противном случае IIS вернет код состояния 404, и ваша страница не будет проиндексирована поисковыми системами.

Что вам нужно сделать, это определить уникальный шаблон префикса, который вы хотите использовать, и создать правило перезаписи web.config. Пример. Я иногда использую «/ detail _» + id для страниц с подробными сведениями о продукте.

Если вы не хотите, вам не нужно сохранять подкаталог «/ blog». Добавьте следующее правило перезаписи в файл web.config в корневом каталоге веб-сайта, чтобы принять что-либо после /blog/ в URL-адресе и интерпретировать его как /?blogtitle=[everythingAfterBlog]. (Я добавил дополнительное предложение в случае, если вы хотите продолжать поддерживать ссылки /blog/article.cfm.)

<rules>
    <rule name="Blog" patternSyntax="ECMAScript" stopProcessing="true">
        <match url="blog/(.*)$" ignoreCase="true" />
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{SCRIPT_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{PATH_INFO}" pattern="^.*(blog/article.cfm).*$" negate="true" />
        </conditions>
        <action type="Rewrite" url="/?blogtitle={R:1}" appendQueryString="true" />
    </rule>
</rules>

Я рекомендую использовать «301 Redirect» для нового URL-адреса, ориентированного на SEO. Я также советую использовать дефис (-) между фрагментами слов и гарантировать, что случай символа согласован (т. Е. В нижнем регистре), или вы можете получить наказание за «дублированный контент».

3
ответ дан Community 21 August 2018 в 19:14
поделиться
  • 1
    Я также разработал аналогичное решение, подобное этому, но клиент не хочет расширения .cfm в url.That проблема – Deepak Kumar Padhy 17 December 2014 в 09:09
  • 2
    Скажите клиенту, что они заставляют вашу руку предоставлять очень нестандартное решение, и им действительно следует подумать дважды о здравом смысле и совете сообщества. – Adam Cameron 17 December 2014 в 10:28
  • 3
    Я согласен с Адамом. Есть инструменты для задач, и вы должны их использовать. Когда инструменты бесплатны, нет справедливого аргумента, который клиент может сделать против них, потому что они, вероятно, даже не понимают, о чем они спорят. – Regular Joe 17 December 2014 в 19:14

Чтобы добавить к предложению cfqueryparam, этот пост в Использование ColdFusion для обработки ошибок 404 показывает, как заменить обработчик веб-сервера 404 сценарием CFM - дать вам полный переписать возможности. Это для более старой версии IIS, но вы должны иметь возможность находить правильные настройки в используемой вами версии IIS.

Как сказал Адам и другие (и то же самое делается в сообщении ) это не то, что вам следует делать, если вы можете избежать этого. Веб-серверы, работающие на уровне HTTP, намного лучше оснащены, чтобы сделать это эффективно. Когда вы полагаетесь на CF для этого, вы намеренно ломаете ошибки, которые бросаются, чтобы получить нужное поведение. Это дорого и не нужно. Как правило, проблема с большинством клиентов или заинтересованных сторон - это простое понимание или знакомство с такими технологиями, как переписывание URL-адресов. Посмотрите, можете ли вы их немного согнуть. Удачи! :)

1
ответ дан Mark A Kruger 21 August 2018 в 19:14
поделиться
  • 1
    Приносим извинения за недостающие изображения в этом сообщении. как я сказал, это очень очень старый :) – Mark A Kruger 17 December 2014 в 17:02
  • 2
    Хорошо, я вернулся и пересортирован со старого сервера, поэтому сообщение теперь имеет изображения, соответствующие инструкциям. Просто имейте в виду, что это для IIS 6 или ранее. В IIS 7+ вы переходите к ошибке cpl и имеете 3 варианта (файл, url или 302). Выберите средний и URL-адрес. выбор - после этого инструкции будут соответствовать. – Mark A Kruger 17 December 2014 в 17:13
3
ответ дан Community 4 November 2018 в 14:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: