1

星级脚本有问题。它适用于动态网址,例如:

/index.php?md=详情&id2

但它不适用于相同的链接,但在静态中,例如:

/ads/test-add-idn2.html

重写规则示例:

RewriteRule ^ads /(.)-idn(. ).html$ index.php?md=details&id=$2 [L,NE]

使用动态网址但不是静态网址的示例“要求”:

要求('_star-rating.php');// 获取数据库连接信息

如何调用“_star-rating.php”来处理静态网址?

使用另一个重写规则?

谢谢

4

3 回答 3

0

您没有选择正确的信息:

^ads/(.)-idn(.).html$
            ^^^ a dot can be any character, but only one
     ^^^ same here

你可能需要类似的东西:

^ads/([-\w]+)-idn(\d+)\.html$
  • [-\w]+: 一个或多个单词字符或-符号
  • \d+: 一位或多位数字

编辑:请注意,这个(一个.htaccess文件)只影响通过网络浏览器/http调用的url。当您使用include或在 php 中时,您正在处理本地文件系统,这与任何文件require无关。.htaccess

于 2012-10-01T20:33:22.917 回答
0

认为您的规则不正确。尝试:

RewriteRule ^ads/(.*?)-idn(\d+)\.html$ index.php?md=details&id=$2 [L,NE]
于 2012-10-01T20:35:11.323 回答
0

您的重写规则将不匹配。如果您之前尝试捕获 URI 中的所有内容-idn并获取其后的数字,则需要更改您的模式,例如:

RewriteRule ^ads/(.*)-idn([0-9]*)\.html$ index.php?md=details&id=$2 [L,NE]

请注意,我们使用*来匹配.之前所有文本的通配符-idn。我们还使用字符类[0-9]来指定我们对-idn文字前后的 0 个或多个数字感兴趣.(必须对其进行转义,以免被视为通配符.

于 2012-10-01T20:36:06.447 回答