gpt4 book ai didi

apache - Mod rewrite htaccess - 重写规则中的两个变量

转载 作者:行者123 更新时间:2023-12-02 08:28:33 25 4
gpt4 key购买 nike

我在网上找到了这个解决方案:

RewriteEngine On
RewriteBase /test/

RewriteRule ^([^-]*)/$ index.php?page=$1
RewriteRule ^([^-]*)/([^-]*)/$ index.php?page=$1&link=$2 [L]

#dodaje slash na koncu
RewriteRule ^(([a-z0-9\-]+/)*[a-z0-9\-]+)$ $1/ [NC,R=301,L]

第一个 RewriteRule 工作完美,它返回我 $_GET['page']=130。但是当谈到第二个时,它返回我 $_GET['page']=index.php 而不是 $_GET['page']=130$_GET['link']=35。由于页面的数字 ID,最终出现 SQL 错误。

正常链接如下:

?page=136

?page=136&link=35

重写一个:

/136/ - 有效

/136/35/ - 不起作用,$_GET['page']=index.php

最佳答案

您可以用此代码替换当前代码(您的 htaccess 必须位于 test 文件夹中,并且 index.php 文件夹中的代码相同)

RewriteEngine On
RewriteBase /test/

# add trailing slash if no trailing slash and not an existing file/folder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+[^/])$ $1/ [R=301,L]

RewriteRule ^([^/]*)/([^/]*)/$ index.php?page=$1&link=$2 [L]
RewriteRule ^([^/]*)/$ index.php?page=$1 [L]

您可以尝试这些链接

  • http://domain.com/test/136/35/在内部重写index.php?page=136&link=35
  • http://domain.com/test/136/35 重定向http://domain.com/test/136/35/
  • http://domain.com/test/136/在内部重写index.php?page=136
  • http://domain.com/test/136 重定向http://domain.com/test/136/

关于apache - Mod rewrite htaccess - 重写规则中的两个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25503700/

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