URL RewriteRule问题

时间:2012-03-09 17:17:56

标签: url mod-rewrite

我正在使用此RewriteRule ^page/([0-9]+)/ page.php?id=$1将网址http://example.com/page.php?id=00001更改为http://example.com/page/00001/,但任何图片或CSS / JS / etc页面都不再正确链接。

EG:http://example.com/_img/image.jpg变为http://example.com/page/00001/_img/image.jpg

有没有办法改变整个目录?例如,我试过这个:

RewriteRule ^page/([0-9]+)/(.*?) $2

但那没用。谢谢你的帮助!

修改
好吧,这似乎有效,但只有其中一个工作取决于哪个是第一个。

RewriteEngine on

RewriteRule ^page/([0-9]+)/(.*)$ $2
RewriteRule ^page/([0-9]+)/ page.php?id=$1

这样它会忽略第二个,因此http://example.com/page/00001/现在是http://example.com/index.php?id=00001而不是http://example.com/page.php?id=00001
是否有可能还考虑到第二个?

2 个答案:

答案 0 :(得分:0)

经过多次尝试后,事实证明我做错了。它应该是这样的:

RewriteEngine on

RewriteRule ^page/([0-9]+)/$ page.php?id=$1
RewriteRule ^page/([0-9]+)/(.*) $2

这使http://example.com/page/00001/实际链接到http://example.com/page.php?id=00001,但其他任何内容(例如http://example.com/page/00001/_img/image.jpg)都使用真实的网址http://example.com/_img/image.jpg

答案 1 :(得分:0)

这样的Mayby会起作用:

RewriteEngine On

RewriteRule ^page/([0-9]+)/(.+)$ $2
RewriteRule ^page/([0-9]+)/?$ /page.php?id=$1