gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 01:06:56 26 4
gpt4 key购买 nike

我在 .htaccess 中的重写规则遇到了一些麻烦,这里的其他答案似乎都没有解决问题!

基本上下面的代码可以工作

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]

关于php - .htaccess 重写规则不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8762981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com