【发布时间】:2010-05-19 00:31:07
【问题描述】:
所以我被困住了。一般来说,我不太擅长 mod_rewrite 或正则表达式,这给我带来了问题。
我需要重定向 url 之类的domain.com/view/Some_Article_Name.html
致domain.com/index.php?p=view&id=Some_Article_Name
我现在的规则运行良好,但它也重写了我所有的样式表和图像以及不应该重写的东西。RewriteRule ^view/([^/]*)\.html$ /index.php?p=view&id=$1 [L]
它应该只重定向以domain.com/view/*开头的页面。我想我所需要的只是一个重写条件,但我似乎无法制作一个有效的。知道我需要在其中添加什么以使其工作而无需为每个单独的文件编写重写器吗?
RewriteCond %{REQUEST_FILENAME} ^(.*)\.html [NC]
RewriteRule ^view/([^/]*)\.html$ /index.php?p=view&id=$1 [L]
是我对此的重写声明。
【问题讨论】:
-
我看不出
RewriteRule怎么可能匹配不以view/开头的东西...你是说它的作用是什么? -
是的,就是这样。它正在寻找 view/style.css 而不是 style.css。此问题现已修复。现在的问题是仅对 /view/* 强制执行它的重写条件。我似乎无法弄清楚如何在这个古老的系统中格式化 cmets,所以我将它添加到我的原始帖子中。
标签: regex mod-rewrite