Options +FollowSymLinks
RewriteEngine on
RewriteRule ^readnews/([0-9]+)\.html$ readnews.php?news_art_id=$1
这可行,但会弄乱我的图像。
images文件夹位于网址http://localhost/newsdev/images
之前的目录中,但重写后我得到http://localhost/newsdev/readnews/123.html
。
请问如何重写以删除.html
?
我想http://localhost/newsdev/readnews/123
。
答案 0 :(得分:1)
如果请求是磁盘上的文件或目录,则不会重写
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
要删除最后的html,您可以使用
RewriteRule ^readnews/([0-9]+)$ readnews.php?news_art_id=$1
答案 1 :(得分:0)
您发布的表达式不应与图片匹配。你可能误解了这些症状。
我有根据的猜测是,你喜欢用相对路径的图像。由于要重新定位HTML文档,因此需要相应地修复路径。
images/foo.jpg
的/newsdev/readnews.php
是/newsdev/images/foo.jpg
[X] images/foo.jpg
的/readnews/314.html
是/readnews/images/foo.jpg
[确定] 或者你可以简单地使用绝对路径:
/newsdev/images/foo.jpg
始终为/newsdev/images/foo.jpg
关于删除.html后缀,直到你自己把它放在那里才会存在。只是不要添加它:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^readnews/([0-9]+)$ readnews.php?news_art_id=$1