2011-01-04 3 views
0
Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^readnews/([0-9]+)\.html$ readnews.php?news_art_id=$1 

Это работает, но испортит мои изображения.Нежелательное расширение .html после правила mod_rewrite

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

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

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

ответ

0

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

Моя образованная догадка заключается в том, что вам нравятся изображения с относительным путем. Поскольку вы перемещаете документ 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 
+0

Спасибо. Пожалуйста, как я могу переписать http: //localhost/newsdev/news.php ---- на http: // localhost/newsdev/news –

1

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

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

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

RewriteRule ^readnews/([0-9]+)$ readnews.php?news_art_id=$1 
Смежные вопросы