Конфигурация файла .htaccess - PullRequest
0 голосов
/ 08 февраля 2012

Пожалуйста, помогите мне решить эту проблему. У меня есть проект php с файлом .htaccess, который содержит такой код -

RewriteEngine on

RewriteRule ^admin/?$ admin/index.php
RewriteRule ^files/([0-9]+)/(.*)([/]?)$ download.php?id=$1 [QSA]
RewriteRule ^([/a-zA-Z0-9_-]+)$ index.php?page=$1 [QSA]

Итак, у меня есть серверы, на первом сервере мой проект работает правильно, но на втором сервере я вижу только домашнюю страницу, я имею в виду, когда я пытаюсь перейти на другую страницу, например, Обо мне, появляется эта ошибка `

Не найдено

Запрошенный URL / my_site / eng / aboutme / не найден на этом сервере.

Я думаю, это связано с файлом .htaccess.

Пожалуйста, помогите мне.

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Я бы предложил использовать это:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On

RewriteRule ^admin/?$ admin/index.php [NC,L]

RewriteRule ^files/([0-9]+)/([^/]*)/?$ download.php?id=$1 [QSA,L,NC]

# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [QSA,L]
  • Вы пропустили флаг L во всех правилах.
  • Вам нужно ослабить последнее правило, чтобы захватить все, что должно быть обработаноindex.php со временем.
  • Также важно использовать RewriteCond %{REQUEST_FILENAME} !-f для предотвращения зацикливания.
0 голосов
/ 08 февраля 2012

Вы проверили, установлен ли на другом сервере mod_rewrite?Если перезапись URL-адреса не работает, то это 90% случаев - отсутствующий механизм перезаписи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...