【问题标题】:HTACCESS code not working for vanity URLSHTACCESS 代码不适用于虚 URL
【发布时间】:2013-10-01 22:48:03
【问题描述】:

现在显示以下网址:

www.mysite.com/account.php?username=$username

我想要的是:

www.mysite.com/$username

我在我的htaccess 文件中使用以下代码:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)$ /account.php?username=$1 [L,QSA]

但它不起作用:URL 和以前一样。

怎么了?

【问题讨论】:

    标签: .htaccess url vanity-url


    【解决方案1】:

    你的规则只做这个:

    如果有人请求www.mysite.com/$username,则在内部将资源服务器发送到/account.php?username=$username

    就是这样。语法为RewriteRule <the URI that matches this> <gets internally rewritten to this>

    因此,您对更改 URL 无能为力。这不是 mod_rewrite 的工作方式。听起来您想要的是能够从外部重定向浏览器,以便位置栏中的内容发生变化。要做到这一点,它要复杂得多:

    RewriteCond %{THE_REQUEST} \ /account\.php\?username=([^&\ ]+)&?([^\ ]*)
    RewriteRule ^ /%1?%2 [L,R=301]
    

    【讨论】:

    • +1 为清楚起见。 URL 重写有效(我可以在地址栏中看到它)但是现在,我看到的是我的 404 自定义错误页面,而不是显示用户的帐户。知道为什么吗?
    • @ChHr 是否有其他 CMS 或任何其他可能干扰的规则?您仍然需要使用问题中的规则以及上面的重定向。
    • 请查看我编辑的问题,我包含了我的完整 htaccess。会不会有什么干扰?
    猜你喜欢
    • 1970-01-01
    • 2018-08-24
    • 2018-05-16
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多