在您的情况下,最好的方法是创建一个全面的 url 重写:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
并在数据库中创建一个特定条目:
+----+-----------------------------+
| id | clean_url |
+----+-----------------------------+
| 1 | /courses/12345 |
| 2 | /courses/12345/typesofclass |
+----+-----------------------------+
现在,您只需获取 url,查看 db 它是什么 id 并加载所需的数据/脚本。
如果需要,您还可以添加旧网址:
+----+-----------------------------+--------------------------------------------+
| id | clean_url | old_url |
+----+-----------------------------+--------------------------------------------+
| 1 | /courses/12345 | manager=CoursesManager&courseCode=12345 |
| 2 | /courses/12345/typesofclass | manager=CoursesManager&courseCode=12345&.. |
+----+-----------------------------+--------------------------------------------+
现在,如果您仍然需要知道旧参数,您可以在文件的最顶部index.php
添加一个小脚本,如下所示:
SELECT old_url FROM ... WHERE clean_url = '{$your_url}'
$params = explode( '&', $result_of_query );
foreach ( $params as $value )
{
$gets = explode( '=', $value );
$_GET[$gets[0]] = $gets[1];
}
这将在页面开头设置您的获取参数,并且脚本应该像以前一样工作。