嗨,我需要一些有关 mod_rewrite 的帮助。
我想更改这种网址
127.0.0.1/app/controller/<anyName1>/<anyName2>.php?firstParam=1&secondParam=text&...&nParam=nSomething
至127.0.0.1/anyName1/anyName2/1/text/.../nSomething
你能给我举个例子吗?
嗨,我需要一些有关 mod_rewrite 的帮助。
我想更改这种网址
127.0.0.1/app/controller/<anyName1>/<anyName2>.php?firstParam=1&secondParam=text&...&nParam=nSomething
至127.0.0.1/anyName1/anyName2/1/text/.../nSomething
你能给我举个例子吗?
通过不尝试修改任何超出/<anyName1>/<anyName2>/
. mod_rewrite
将路径组件动态映射到查询变量需要一些非常时髦的递归巫术魔法。
而是仅抓取/<anyName1>/<anyName2>/
,将路径的其余部分附加到重定向,然后使用 PHP 解析路径:
.htaccess
RewriteCond %{REQUEST_URI} !^/app/controller/[^/]+/[^/]+\.php
RewriteRule ^([^/]+)/([^/]+)/?(.*)$ /app/controller/$1/$2.php/$3 [L]
PHP
$components = array_filter(explode('/', $_SERVER['PATH_INFO']), 'strlen');
echo '<pre>';
print_r($components);
echo '</pre>';
输出:
Array
(
[1] => 1
[2] => text
[3] => ...
[4] => nSomething
)