【问题标题】:RewriteRule if first character is question markRewriteRule 如果第一个字符是问号
【发布时间】:2017-07-10 14:19:24
【问题描述】:

我的 .htaccess 文件有问题。

目前我对子目录 /lp 下的每个请求都使用以下脚本:

RewriteEngine On
RewriteBase /lp
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^.*\.(jpg|css|js|gif|png)$ [NC]
RewriteRule . index.php

如果有人使用如下网址

www.website.com/?1FOOBAR23

我还想使用与上述相同的规则重定向到子目录 /lp。但前提是 URL 以问号开头,后跟数字和 6-8 个其他字符。我怎么能这样做?

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite


    【解决方案1】:

    您将需要在站点根目录 .htaccess 中使用此规则:

    RewriteEngine On
    
    RewriteCond %{QUERY_STRING} ^[a-z0-9]{6,}$ [NC]
    RewriteRule ^/?$ ip/index.php [L]
    

    【讨论】:

    • @anabhava:非常感谢您的回答!我仍在试图弄清楚如何使它工作,但我认为我真的很接近。 RewriteCond 现在似乎可以工作了。也许 RewriteRule 不正确。我将此内容添加到根目录中的 .htaccess 中:RewriteCond %{QUERY_STRING} ^[0-9]{1,3}[A-Z0-9]{6}$ RewriteRule ^/?$ lp/index.php [L]
    • 对不起,这是我的错。我的应用程序的路由似乎有问题。 RewriteRule 似乎工作得很好!非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 2021-02-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    相关资源
    最近更新 更多