我对.htaccess和重写规则感到疯狂。 我想知道它是如何工作的,我讨厌它,无论如何这里是我的问题。
(对你们大多数人来说真的很简单)
我的网站有一个主页index.php
。
这是唯一的页面,所有其他页面都由此处理。
我做了一个简单的RewriteRule
:
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1
这样做:
/index.php?page=VAL -> /VAL
但我不知道如何为此制定规则:
/index.php?page=VAL&var1=VAL2&var2=VAL3 etc.
我想要一个最终的网址,如:
/VAL/VAL2/VAL3 etc.
由于
答案 0 :(得分:1)
您可以将请求重写为 index.php 并使用PHP解析请求的URI路径:
$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$segments = implode('/', ltrim($_SERVER['REQUEST_URI_PATH'], '/'));
以及那条规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php$ index.php [L]
这会将每个请求(即URI路径无法映射到现有文件)重写为 index.php 。