【问题标题】:Url User Friendly, hide original address with variables网址用户友好,使用变量隐藏原始地址
【发布时间】:2012-01-10 11:23:59
【问题描述】:

这是我的简单 htaccess,它将所有调用重定向到 index.php 或 error.php

它工作正常,但我会从地址栏中隐藏原始地址。

#Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php [L]

ErrorDocument 404 /error.php

现在,如果我继续访问 www.mysite.com/news/last 我可以查看 www.mysite.com/index.php?p=news&section=last 但我希望它在地址栏中没有改变。

提前致谢;)

【问题讨论】:

    标签: .htaccess mod-rewrite user-friendly address-bar


    【解决方案1】:

    由于您将所有调用重定向到 index.php 文件,我想您必须在 php 中构建一个路由器(或尝试使用一个已经构建的路由器)。 然后,您必须配置(通常通过 xml 或 php 配置文件)要替换原始查询字符串的路由。 示例:

    index.php?p=news&section=last

    可以变成

    /新闻/最后

    或您喜欢的任何字符串。 如果您需要示例或帮助如何创建路由系统,请询问 =)

    干杯

    【讨论】:

    • 首先感谢您的回答;)我不明白什么是路由器...我将所有调用发送到 index.php 文件,从 $_SERVER[uri] 检索信息并使用函数 header('location:'.$redirect); 切换调用怎么了?为什么地址栏从“www.mysite.com/username”变为“www.mysite.com/index.php?un=username”?我想保留“www.mysite.com/username”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2011-04-05
    • 2013-03-23
    • 1970-01-01
    相关资源
    最近更新 更多