Нежелательное расширение .html после правила mod_rewrite - PullRequest
0 голосов
/ 04 января 2011
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^readnews/([0-9]+)\.html$ readnews.php?news_art_id=$1

Это работает, но портит мои изображения.

Папка с изображениями находится в каталоге до URL http://localhost/newsdev/images, но после перезаписи я получаю http://localhost/newsdev/readnews/123.html.

Пожалуйста, как я могу переписать, чтобы удалить .html?

Я хотел бы иметь http://localhost/newsdev/readnews/123.

Ответы [ 2 ]

1 голос
/ 04 января 2011

Это не будет перезаписывать, если запрос представляет собой файл или каталог на диске

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Чтобы удалить HTML в конце, вы можете использовать

RewriteRule ^readnews/([0-9]+)$ readnews.php?news_art_id=$1
0 голосов
/ 04 января 2011

Выражение, которое вы разместили, не должно совпадать с картинками.Возможно, вы неправильно поняли симптомы.

Мое обоснованное предположение состоит в том, что вам нравятся изображения с относительным путем.Поскольку вы перемещаете документ HTML, вам необходимо соответствующим образом исправить пути.

  • images/foo.jpg из /newsdev/readnews.php - это /newsdev/images/foo.jpg [X]
  • images/foo.jpg из /readnews/314.html - это /readnews/images/foo.jpg [OK]

Или вы можете просто использовать абсолютные пути:

  • /newsdev/images/foo.jpg всегда /newsdev/images/foo.jpg

Что касается удаления суффикса .html, его не существует, пока вы сами не поместите его туда.Только не добавляйте это:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^readnews/([0-9]+)$ readnews.php?news_art_id=$1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...