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

これは機能しますが、画像が壊れます。mod_rewriteルールの後の不要な.html拡張子

imagesフォルダは、URL http://localhost/newsdev/imagesより前のディレクトリにありますが、書き換え後はhttp://localhost/newsdev/readnews/123.htmlとなります。

.htmlを削除するには、どうすればいいですか?

私はhttp://localhost/newsdev/readnews/123を持っています。

答えて

0

あなたが投稿した表現を使用することができます最後にHTMLを削除するには、ディスク上のファイルまたはディレクトリ

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

である場合、これは書き換えません。写真と一致するはずはありません。症状を間違えた可能性があります。

私が推測したことは、あなたが相対パスで画像を好きだということです。 HTML文書を再配置するので、それに応じてパスを修正する必要があります。 /newsdev/readnews.phpから

  • images/foo.jpg/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

要求はあなたが

RewriteRule ^readnews/([0-9]+)$ readnews.php?news_art_id=$1 
関連する問題