我从未使用过.htaccess现在是我的生活我正在学习它,但我觉得很难理解。
任何人都可以告诉我重写网址的步骤
例如
从此
Www.example.com?s=abc
到此
Www.example.com/abc
答案 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";
}
?>