星号脚本有问题。它与动态网址一起工作正常,例如:
/index.php?md=details&id2
但它不适用于相同的链接,但在静态,例如:
/ads/test-add-idn2.html
重写规则示例:
RewriteRule ^ ads /(。) - idn(。)。html $ index.php?md = details& id = $ 2 [L,NE]
使用动态网址而非静态网址的示例“require”:
要求( '_星形rating.php'); //获取数据库连接信息
如何调用“_star-rating.php”来处理静态网址?
使用另一个重写规则?
谢谢
答案 0 :(得分:0)
您没有选择正确的信息:
^ads/(.)-idn(.).html$
^^^ a dot can be any character, but only one
^^^ same here
您可能需要以下内容:
^ads/([-\w]+)-idn(\d+)\.html$
[-\w]+
:一个或多个单词字符或-
个标志\d+
:一个或多个数字 修改:请注意,此(.htaccess
文件)仅影响通过网络浏览器/ http调用的网址。当您在php中使用include
或require
时,您正在处理本地文件系统,这与任何.htaccess
文件无关。
答案 1 :(得分:0)
认为你的规则不正确。尝试:
RewriteRule ^ads/(.*?)-idn(\d+)\.html$ index.php?md=details&id=$2 [L,NE]
答案 2 :(得分:0)
您的重写规则不匹配。如果您尝试在-idn
之前捕获URI中的所有内容并获取其后的数字,则需要更改模式,如:
RewriteRule ^ads/(.*)-idn([0-9]*)\.html$ index.php?md=details&id=$2 [L,NE]
请注意,我们使用*
来匹配.
之前所有文字的通配符-idn
。我们还使用字符类[0-9]
来指定我们在-idn
之后和文字.
之前的0或更多数字中感兴趣(必须对其进行转义,以免被视为通配符{{ 1}}。