Вопрос

После загрузки моего проекта Kohana на мой сервер Godaddy я заметил, что мой стандартный файл .htaccess работает недостаточно, чтобы предоставлять чистые URL-адреса.После некоторых указаний я пришел к следующему правилу:

RewriteRule .* index.php?kohana_uri=$0 [PT,L]

Это снова заставило мои приятные URL-адреса работать, но сегодня я обнаружил, что это может нарушать работу моей внутренней поисковой системы, которая также использует переменные в стиле GET:

/search?terms=php

Скрипты не находят значения.Они находятся на моем сервере разработки, на котором нет измененного RewriteRule, но не на сервере Godaddy, который использует RewriteRule.

Прав ли я, предполагая, что это правило нарушает способность любых скриптов считывать данные из $ _GET, и если да, то как я могу это исправить?

Это было полезно?

Решение

Возможно, используя QSA в ваших rewriterules, вот так :

RewriteRule .* index.php?kohana_uri=$0 [PT,QSA,L]

Смотрите на руководство по mod_rewrite (цитирую) :

'qsappend |QSA' (добавление строки запроса)

Этот флаг заставляет механизм перезаписи добавлять часть строки запроса строки подстановки к существующей строке вместо ее замены .Используйте это, когда вы хотите добавить дополнительные данные в строку запроса с помощью правила перезаписи .

Может помочь (не тестировалось в вашем конкретном случае, но я помню, что использовал это некоторое время назад для решения какой-то проблемы, подобной этой)

Другие советы

Я думаю, вы могли бы добавить: RewriteCond $1 !^(search), или его разновидность.

Если вы хотите использовать стандартную практику и без строки запроса, вам нужно просто выполнить эти шаги, и все будет работать так же, как localhost. И вам не нужно менять правила перезаписи.

Перейдите в файловый менеджер вашей учетной записи godaddy -> каталог WebRoot -> создайте php5.ini, если он не существует, и поместите следующую строку:cgi.fix_pathinfo = 1

Теперь вам нужно перезапустить веб-процесс:

1.) Войдите в свой аккаунт-менеджер.2.) Нажмите «Веб-хостинг».3.) Рядом с учетной записью хостинга, которую вы хотите использовать, нажмите «Запустить».4.) В разделе «Статистика и мониторинг» нажмите «Системные процессы».5.) В списке слева выберите процесс, который хотите просмотреть, или нажмите «Все процессы», чтобы просмотреть все процессы одновременно.6.) Чтобы завершить процесс, нажмите соответствующую кнопку завершения на панели инструментов.

Теперь вы можете использовать URI_PROTOCOL как Auto.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top