伪静态URL(Pseudo-static URL)是指通过服务器配置或编程手段,将动态网页的URL转换成看起来像静态网页的URL。这种技术可以提高网站的SEO效果,使URL更加友好和易于记忆。
.htaccess
文件进行URL重写。适用于任何需要将动态URL转换为静态URL的场景,如博客、电商网站、论坛等。
步骤:
mod_rewrite
模块。.htaccess
文件。示例代码:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
参考链接:
步骤:
nginx.conf
或default.conf
)。示例代码:
server {
listen 80;
server_name example.com;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
参考链接:
步骤:
router.php
)。index.php
)中引入并使用路由。示例代码:
// router.php
$router = [
'/' => 'HomeController@index',
'/about' => 'AboutController@index',
];
$requestUri = $_SERVER['REQUEST_URI'];
if (array_key_exists($requestUri, $router)) {
$controller = explode('@', $router[$requestUri])[0];
$method = explode('@', $router[$requestUri])[1];
$controllerInstance = new $controller();
$controllerInstance->$method();
} else {
echo "404 Not Found";
}
参考链接:
问题1:.htaccess
文件不起作用
mod_rewrite
模块,或者.htaccess
文件权限问题。mod_rewrite
模块已开启:mod_rewrite
模块已开启:.htaccess
文件权限:.htaccess
文件权限:问题2:Nginx配置文件语法错误
问题3:PHP路由无法匹配URL
通过以上教程,你应该能够掌握PHP伪静态URL重写的基本概念、优势、类型、应用场景以及常见问题的解决方法。
领取专属 10元无门槛券
手把手带您无忧上云