我已经搜索了这个问题,但我只遇到了非常具体的答案,这些答案似乎很难适应我的特定需求。
假设我试图重写的 URL 是这样的:
http://www.example.org/test.php?whatever=something
我想重写它,使它看起来像这样:
http://www.example.org/test/something
我怎样才能做到这一点?
我已经搜索了这个问题,但我只遇到了非常具体的答案,这些答案似乎很难适应我的特定需求。
假设我试图重写的 URL 是这样的:
http://www.example.org/test.php?whatever=something
我想重写它,使它看起来像这样:
http://www.example.org/test/something
我怎样才能做到这一点?
为了路由像/test/something
内部重写这样的请求以便提供内容/test.php?whatever=something
,您将在文档根目录的 htaccess 文件中使用这些规则:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?test/(.*?)/?$ /test.php?whatever=$1 [L]
为了将查询字符串 URL 重定向到更好看的 URL:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /test\.php\?whatever=([^\&\ ]+)
RewriteRule ^/?test\.php$ /test/%1? [L,R=301]