【问题标题】:htaccess rewrite urls - how do i write the urls in my code?htaccess 重写网址 - 我如何在我的代码中编写网址?
【发布时间】:2011-05-23 08:01:46
【问题描述】:

使用 apache/.htaccess 重写引擎:

如果我想更改像

这样的网址

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

到

www.foo.com/abc/123

我是否需要在我的 PHP 文件中手动重写我的 URL,或者这也需要处理?

即,将我的代码 更改为

mod_rewrite 会为我处理这个吗?还是它只是翻译它接收到的 URL,并没有真正根据 .htaccess 文件中的规则重写生成的 HTML?

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    是的,你必须改变它。

    Mod rewrite 仅在内部重定向请求。它改变了对您的应用程序可见的 HTTP 标头,但您仍然可以通过附加的附加标头字段来重现原始 url。它不会修改您发送的任何内容。

    【讨论】:

      【解决方案2】:

      如果您有服务器 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 时,您会得到相同的结果 url 或这些 www.foo.com/abc/123 url。

      任何的cmet,请告诉我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-23
        • 2016-10-29
        • 1970-01-01
        • 2011-06-06
        相关资源
        最近更新 更多