.htaccess 伪静态
在配置伪静态的时候 我发现我需要配置两个传值的伪静态时 折腾了半天才搞懂,我写的伪静态不能用同样的路径

正确示范

#启动伪静态
RewriteEngine On

RewriteRule ^h/(.+)$ home.php?h=$1
RewriteRule ^p/(.+)/([0-9]+)\.html$ home.php?h=$1&p=$2
#这样写 是可行的,只要get获取的方式正确,就可以通过以下方式正常访问
# 网址/h/值1
# 网址/p/值1/值2.html 

错误示范

#启动伪静态
RewriteEngine On

RewriteRule ^h/(.+)$ home.php?h=$1
RewriteRule ^h/(.+)/([0-9]+)\.html$ home.php?h=$1&p=$2
#这里是两个h,相同可能会导致一直解析 第一个内容

因为:

  • 值1是admin
    那么正常来讲访问时就是是 “网址/h/admin”这样,这是可行的,但如果第二行配置
  • 值1是admin,值2是1
    传值是正常的 但是引用的路径是相同的

所以:

#启动伪静态
RewriteEngine On

#(1) 可行
RewriteRule ^h/(.+)$ home.php?h=$1
RewriteRule ^p/(.+)/([0-9]+)\.html$ home.php?h=$1&p=$2
#(2) 不可行
RewriteRule ^h/(.+)$ home.php?h=$1
RewriteRule ^h/(.+)/([0-9]+)\.html$ home.php?h=$1&p=$2

网址/h/admin/1.html 如果(2)没有第一行的配置,只有第二行也是可以正常访问的,如果有了第一行和第二行,第一行的路径和第二行的路径相同 ,第二行就会被第一行相同路径而覆盖。再怎么访问 也只是在解析第一行的配置


教程就是这些,可能有可以解决路径相同还能访问的办法,只是我还没有摸索到,如果有懂得朋友欢迎来解疑惑。

如果觉得讲的不好,请不要看哈,怕误人子弟咯。

相关文章:

钢木门