子目录的mod_rewrite [英] mod_rewrite for sub directory

查看:60
本文介绍了子目录的mod_rewrite的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个域和一个子文件夹,称为"sub".."sub"内部是index.php,它具有以下内容:

I have a domain and a sub folder, called "sub"..inside "sub" is index.php which has this:

$page = $_GET['page'];
switch ($page)
{
    case "main":
        echo "main";
        break;
    case "task_orders":
        echo "task_orders";
        break;
    case "team_members":
        echo "team_members";
        break;
    case "team_experience":
        echo "team_experience";
        break;
    case "quality_assurance":
        echo "quality_assurance";
        break;
    case "geographical_support":
        echo "geographical_support";
        break;
    case "contact":
        echo "contact";
        break;
    default:
        echo "main";
}

我在"sub"中的htaccess是:

my htaccess in "sub" is:

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^sub/([^/\.]+)/?$ index.php?page=$1 [L]

当我单击如下所示的链接时:

when I click a link which looks like:

<li><a href="/sub/main" title="Main" class="current">Main</a></li>
<li><a href="/sub/task_orders" title="Task Orders">Task Orders</a></li> 
<li><a href="/sub/team_members" title="Team Members">Team Members</a></li> 
<li><a href="/sub/team_experience" title="Team Experience">Team Experience</a></li> 
<li><a href="/sub/quality_assurance" title="Quality Assurance Program">Quality Assurance</a></li> 
<li><a href="/sub/geographical_support" title="Geographical Support">Geographical Support</a></li> 
<li><a href="/sub/contact" title="Points of Contact">Points of Contact</a></li> 

我找不到一个页面,而不是回荡我所在的页面,有什么想法吗?

I get a page not found rather than echoing out what page I am on, any ideas?

我也尝试过:

RewriteRule ^/sub/([^/\.]+)/?$ /sub/index.php?page=$1 [L]

结果相同

推荐答案

您快到了.编写RewriteRule时,您不想指定前导/.

You're almost there. You don't want to specify the leading / when writing the RewriteRule.

在文档根目录中:

RewriteEngine on
RewriteRule ^sub/([^/\.]+)/?$ /sub/index.php?page=$1 [L]

从/sub文件夹中:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L]

这篇关于子目录的mod_rewrite的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆