首页 文章

htaccess重写网址 - 如何在我的代码中编写网址?

提问于
浏览
0

使用apache / .htaccess RewriteEngine:

如果我想改变一个网址就好

www.foo.com/mypage.php?var=abc&var2=123

www.foo.com/abc/123

我是否需要手动重写我的PHP文件中的URL,还是需要处理?

即,将我的代码<a href="mypage.php?var=abc&var2=123">更改为<a href="abc/123">

mod_rewrite会为我处理这个吗?或者它只翻译它收到的URL,而不是实际根据.htaccess文件中的规则重写生成的HTML?

2 回答

  • 0

    如果您具有服务器httpd配置访问权限,则可以将以下代码放在服务器apache服务器配置中或放入httaccess文件中

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /mypage.php [L]
    </IfModule>
    

    并将以下代码放在mypage.php文件顶部,

    $Get_data = explode('/', $_SERVER[REQUEST_URI]);
    $_GET['var'] = $Get_data[1];
    $_GET['var2'] = $Get_data[2];
    

    现在,当您使用这些www.foo.com/mypage.php?var=abc&var2=123网址或这些www.foo.com/abc/123网址时,您会得到相同的结果 .

    有任何意见,请告诉我 .

  • 1

    是的,你必须改变它 .

    Mod重写仅在内部重定向请求 . 它会改变应用程序可见的HTTP标头,但您仍然可以通过其他 Headers 字段重现原始URL . 它不会修改您发送的任何内容 .

相关问题