2014-01-11 4 views
0

У меня возникли проблемы с выяснением того, как использовать файл htaccess. У меня установлен apache/php на системе ubuntu, и mod_rewrite включен (php_info() заявляет, что находится в списке загруженных модулей). Веб-сервер работает, отображает файлы html и php, поэтому я доволен этим.Попытка выяснить проблемы с htaccess

Теперь я пытаюсь выяснить, как правильно использовать файл htaccess. Я создал каталог/данные с файлом index.php. Все, что я хочу сделать в данный момент, просто отображает переменную $ _REQUEST, чтобы я мог видеть, работают ли вещи так, как я предполагаю.

Пример: Если я типа в следующем URL: локальный/данные/info1/Я хочу, чтобы файл Htaccess для доступа LOCALHOST/данные/index.php запрос = info1

Однако, независимо от того, что я вхожу в? к файлу htaccess, я продолжаю получать 404 ошибки, и я хотел бы понять, почему.

Вот мой файл .htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule data/(.*)$ data/index.php?request=$1 [L] 
</IfModule> 

Я не сделал никаких изменений в конфигурационный файл, чтобы активировать mod_rewrite, я использовал команду убунту a2enmod так убунту сделал это для меня. После этого я перезапустил apache.

Что я не могу понять, почему это не работает. Мое предположение заключается в том, что все еще есть какая-то конфигурация, которую мне нужно делать на сервере, но я, честно говоря, не знаю, что. Есть ли какой-нибудь совет, который может мне предложить?

+0

Может быть, основная вещь. Но я заметил, что вы набирали 'htaccess' везде, а не' .htaccess', последнее является правильным именем файла для файла htaccess. (Опять же, может быть очевидно, но просто убедившись здесь ..) –

+0

Привет, Дэмиен! Файл находится на сервере .htaccess. Я извиняюсь за любую путаницу. – Lisa

ответ

1

Вот исправление:

RewriteRule ^data/(.*)$ data/index.php?request=$1 [L] 

(Вы пропускали ^)

EDIT:

В OP, вы другой ведущий / в примере URL, в этом в случае это будет:

RewriteRule ^data/(.*)/$ data/index.php?request=$1 [L] 
+0

Hi Brodie! Я внес изменения, которые вы предложили, а также добавив следующую строку: RewriteLog /tmp/rewrite.log Теперь файл журнала, похоже, не меняется, поэтому мне кажется, что есть некоторая дополнительная конфигурация, которая мне нужна делать тоже. – Lisa

+0

Да, ваш '.htaccess' не может быть загружен или включен: [здесь, как проверить] (http://stackoverflow.com/questions/9234289/verify-if-htaccess-file-is-running). –

+0

Как примечание, если вы делаете много ручных модификаций мод, вы можете проверить легкую структуру маршрутизации, например [Slim] (http://www.slimframework.com/). Я использую его в производстве и очень стабилен, если вы застряли в PHP, я бы очень рекомендовал его. –

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