2009-08-12 2 views
5

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

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

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

/search?terms=php 

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

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

ответ

8

Может быть, с помощью QSA в ваших RewriteRules, как это:

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

Смотрите manual of mod_rewrite (квотирование):

'qsappend | QSA' (строки запроса Append)

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

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

+0

Это сработало. Я подожду и позволю другим участвовать (так как я очень мало знаю о .htaccess и как таковой, если это лучшее решение), прежде чем я приму. Спасибо! – Sampson

+0

Без проблем :-) добро пожаловать! –

1

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

0

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

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

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

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

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

Смежные вопросы