.htaccess ReWriteRule - Запрошенный URL <переписанное имя файла> не найден на этом сервере

1

Я тестировал это в WAMP, и я не могу заставить его работать. Я считаю, что WAMP настроен должным образом из-за сообщения об ошибке, которое я получаю, и он не работает, когда я не использую файл.htaccess.

У меня есть имя файла, которое я использую для тестирования под названием Feedback.php. Вместо отображения как www.mysite.com/Feedback.php. Я пытаюсь получить его просто www.mysite.com/Feedback.

.htaccess файл

RewriteEngine on
RewriteRule ^Feedback.php/?$ Feedback [NC]

Сообщение об ошибке, которое я получаю, является

"Не обнаружена
Запрошенный URL/Отзыв не найден на этом сервере. "

Существуют ли два файла, необходимые для работы reWriteRule?

Я также пытаюсь заставить это работать для моего index.php, чтобы просто быть www.mysite.com, который может быть другим монстром.

Какими должны быть мои навигационные ссылки? Сейчас они <a href="Feedback.php">Feedback</a> связь href href="Feedback" <a href="Feedback.php">Feedback</a> Если href возможно быть href="Feedback", как только я получить эту работу?


EDIT: у меня были переменные ReWriteRule. Вместо

RewriteRule ^Feedback.php/?$ Feedback [NC]

мне следует иметь

RewriteRule ^Feedback/$ /Feedback.php [NC,L]

Переписывание не выглядит так, как будто оно все еще читает localhost/Feedback.php

  • 1
    Вы делаете это наоборот. Ваше правило должно быть RewriteRule ^Feedback$ /Feedback.php [NC,L] . Это всегда как RewriteRule WHAT WHERE
  • 0
    Спасибо! Не осознавал этого. Мой URL все еще читает localhost / Feedback.php , поэтому, хотя он загружен, переименование, похоже, не сработало.
Теги:
.htaccess
mod-rewrite

1 ответ

1
Лучший ответ

Вы можете использовать это, чтобы удалить расширение .php со своих страниц, а также исключить часть index на свой сайт:

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{THE_REQUEST} /index
RewriteRule ^index$ http://yourwebsite.com/         [R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php                            [L]
  • 0
    @john stamos Я использовал фрагмент кода в своем ответе, и он всегда работает для меня
  • 1
    Спасибо тебе за это. Я считаю, что неправильно было то, что мои ссылки href были <a href="feedback.php"> вместо <a href="feedback">. Мы должны ссылаться на новое имя правильно?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню