我有一个网站,可以将一些 GET 变量传递给 PHP 中的不同页面。我的问题是,现在我有一个带有变量的 url,即 index.php?category=categoryname,这不是很令人难忘。
有什么方法可以将 URL 更改为 /categoryname 之类的东西,而无需复制页面并存储在文件夹中?但还允许用户输入 /categoryname 并被重定向到正确的页面?
.htaccess Apache mod_rewrite,几乎每个专业的动态网站都使用这种方法(如stackoverflow)。
该方法在本文中得到了充分的解释,比我可以在这个答案框中解释的要好得多。
您应该考虑Mod_Rewrite
在文件中编写一些 apache 规则.htaccess
。
解决方案在这里讨论:
这是由 apache 的 rewrite 模块完成的,它处理正则表达式。您必须在网站根目录的 .htaccess 文件中添加这样的规则:
重写规则 ^cat/([0-9]+)$ /index.php?category=$1
^ 表示 www.example.com/ 之后的 url 的开头 $ 表示页面的结尾。
www.example.com/cat/123
将由服务器转换为:
www.example.com/index.php?category=123
在 PHP 中,您使用普通的 $_GET['id'] 变量。重写模块必须由apache启用...这主要用于使url格式独立于服务器端脚本语言,因此url中的.php不合逻辑。这就是为什么我将其更改为 product/ 。.htaccess 以
RewriteEngine On Options +FollowSymLinks RewriteBase / 这里所有的重写规则.. ...