使用$ _get重写mod但不适用于子文件夹

时间:2016-04-23 08:42:42

标签: php .htaccess mod-rewrite

我现在的工作是:

 webshop/index.php?page=home

重写为:

webshop/home

但现在我想要以下链接:

webshop/account/login

我认为它应该与我得到的代码一起使用,但事实并非如此。

我得到的是以下PHP代码:

<?php
if (isset($_GET['page'])) { 
$page = $_GET['page'];      
} else {                    
   $page = 'home';      
}
if (strpos($page, '/') !== false || !file_exists("pages/$page.php")) {  
     $page = 'error';                                               
}
include ("pages/$page.php");        
?>

这是我的.htaccess文件:

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*?)index\.php$ /$1 [L,R=302,NC,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^webshop/([^/]*)$ /webshop/?page=$1 [L]

1 个答案:

答案 0 :(得分:1)

试试这个,你可以返回多参数

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteBase /webshop/

RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*?)index\.php$ /$1 [L,R=302,NC,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  ^/([^/]+)/?([^/]*)?   [NC]
RewriteRule .*    index.php?page=%1&route=%2  [L]