【问题标题】:Htaccess mod_rewrite conditions and parametershtaccess mod_rewrite 条件和参数
【发布时间】:2011-03-21 10:11:06
【问题描述】:

我需要一些关于重写 .htaccess 规则的帮助,以及那里的一些正则表达式。

我已经在htaccess中有一些重写规则定义,所以如果我调用html文件,它会作为php执行。

我现在只需要在浏览器中打开如下:

http://mydomain.com/some-string/12345.html

调用文件article.php?id=12345

(id值只能是整数)

如果你能帮助他如何做到这一点......

提前致谢!

【问题讨论】:

    标签: php regex .htaccess mod-rewrite


    【解决方案1】:

    您可以使用以下代码来实现:

    RewriteEngine On
    
    RewriteRule ^some-string\/([0-9]*)\.html$ article.php?id=$1
    

    【讨论】:

    • tnx,但是“some-string”是可变的……可以是“car”、“audio”、“player”、“door”等……
    • 我倾向于将 [NC,L] 标志添加到我的规则末尾,以便 htaccess 文件停止寻找其他规则。 @Michiel 需要在 html 扩展名 (\.html) 中的句点之前放置一个转义符
    • @user198003:如果是汽车,您可以将some-string 替换为car。如果它真的可以是任何东西,您可能希望将其更改为 .*
    • @Dickie:谢谢,确实如此。我忘记了。
    【解决方案2】:

    基于@Michiel 的回答:

    RewriteEngine On
    
    RewriteRule ^([a-z\-]+)\/([0-9]*)\.html$ article.php?id=$2 [NC,L]
    

    这将捕获(小写字母和连字符)/(数字).html 并重定向到 article.php?id=numbers。即现在这将捕获cars/13.html、mens-shorts/27.html 等。

    【讨论】:

    • tnx,你非常接近我需要的解决方案:RewriteRule ^([a-z\-]+)\/([0-9]*)\.html$ article.php\/$2 [ NC,L] 更谢谢你!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多