微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-.htaccess重写规则不起作用

我在.htaccess中的Rewrite规则时遇到了一些麻烦,这里的其他答案似乎都无法解决问题!

基本上下面的代码有效

RewriteRule ^index.PHP$test.PHP

但是,只要添加其他内容,它就不会!下面的两行代码根本不起作用

RewriteRule ^project-([0-9]+)\.html$project.PHP?id=$1
RewriteRule ^project.PHP?id=82$test.PHP

当我开始工作时,我最终希望从页面获取项目标题并将其插入url(就像您在URL中查看该站点一样)并将所有.PHP都转换为.html,但是我似乎拥有跌倒了第一关!

有任何想法吗?任何帮助将不胜感激!

解决方法:

请在下面查看对您的代码的以下修改

#escape the . so it does not match indexsPHP etc
#added [NC,L] so it is not case sensitive and last rule processed
RewriteRule ^index\.PHP$test.PHP [NC,L]

#added [NC,L] so it is not case sensitive and last rule processed 
# and QSA to pass through any existing query string  values
RewriteRule ^project-([0-9]+)\.html$project.PHP?id=$1 [L,NC,QSA]

如果这条规则

RewriteRule ^project.PHP?id=82$test.PHP

仅当id = 82时才匹配,那么它将不起作用,需要按以下方式重写

#if the query string has an id=82
RewriteCond %{QUERY_STRING} id=82 [NC]
#and resource is project.PHP, send it to test.PHP
RewriteRule ^project\.PHP$test.PHP [NC,L]

编辑

I would like to take project.PHP?id=82 and change to project-82.html

请参阅以下规则

#if the original request has project.PHP
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /project\.PHP [NC]
#capture the id param
RewriteCond %{QUERY_STRING} id=([0-9]+) [NC]
#and 301 redirect to project-id.html
RewriteRule . project-%1.html? [L,R=301]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐