2013-08-16 151 views
0

嗨,我需要一些mod_rewrite的幫助。Apache mod_rewrite URL

我想這種URL的改變

127.0.0.1/app/controller/<anyName1>/<anyName2>.php?firstParam=1&secondParam=text&...&nParam=nSomething 

127.0.0.1/anyName1/anyName2/1/text/.../nSomething

你能不能給我任何的例子,如何做到這一點?

回答

0

你可以通過不試圖修改/<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 
)