如何在php中重写Get变量的url

时间:2016-12-26 00:13:19

标签: php .htaccess

我从未使用过.htaccess现在是我的生活我正在学习它,但我觉得很难理解。

任何人都可以告诉我重写网址的步骤

例如

从此

Www.example.com?s=abc

到此

Www.example.com/abc

1 个答案:

答案 0 :(得分:3)

.htaccess实际上只占工作的一半。

这个.htaccess将实现你想要的(我认为)

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^.*\.(jpg|css|js|gif|png)$ [NC]
RewriteRule ^(.+)$ index.php?request=$1 [QSA,L]

这个.htaccess会将您的所有请求转换为index.php?request=myurl在后​​台,而在前面则显示为mydomain.com/myurl,但是,它不会为1上所述的扩展执行此操作 - 到最后一行。 (否则你在尝试加载css,js,图像等时会遇到麻烦)。添加您希望从路由中排除的任何扩展名。

但是,仍然有一部分在PHP中捕获它。 Everything 现在将通过index.php进行路由。这意味着您需要一个脚本来捕捉"请求并手动包含所需的文件。

我将在这里粘贴一个非常简单的示例:

<?php 
  $getRequest  = explode('/', $_GET['request']);
  $page = $getRequest[0];

  if( file_exists("/mypages/$page.php") ) {
    require_once('myheader.php');
    require_once("/mypages/$page.php");
    require_once('myfooter.php');
  }
  else{
   echo "page not found";
  }
?>