.htaccess RewriteRule和$ _GET变量

时间:2011-12-20 15:52:04

标签: php regex .htaccess

我正在网站上工作并需要进行一些网址重写

它与$_GET URL ReWriting非常相似,但我似乎无法使其正常工作

基本上在我的index.php我使用$_GET变量来显示内容

<?php
$page = basename($_GET['page']).".php";
if(file_exists("content/".$page))
    include("header.php");
else
    include("header_index.php");
?>

<div id="main">
<!-- container -->
    <?php
    if (file_exists("content/".$page))
        echo '<div id="container">';
    else
        echo '<div id="container" class="index_container">';
    ?>
        <!-- content -->
            <div id="content">
                <?php
                    if(file_exists("content/".$page))
                        include("content/".$page);
                    else
                        include("content/index_page.php");
                    include("./content/right_menu.php");
                ?>
            </div>
        <!-- content -->
    </div>
<!-- /container -->
</div>

<?php
    include("./footer.php");
?>

这样test.com/?page=test1显示website_folder/content/test1.php

我要做的是将其转到test.com/test1

我网页上的所有链接都与<a href="?page=testX">Test X</a>

相似

谢谢

编辑: 重写规则尝试了 RewriteRule (.*)$ ?page=$1
RewriteRule ./([a-zA-Z]+)$ ./index.php?page=$1
RewriteRule /([a-zA-Z0-9]) /?page=$1
RewriteRule ^subdomain.test.com/subfolder/(.+) subdomain.test.com/subfolder/index.html?page=$1 [NC]
RewriteRule (.+)$ index.php?page=$1

1 个答案:

答案 0 :(得分:2)

这应该做:

RewriteRule ^subdomain.test.com/subfolder/(.+) subdomain.test.com/subfolder/index.html?page=$1 [NC]

对我有用!

(注意.html。您可能需要将其更改为.php,.asp等。)

您还需要:

Options +FollowSymLinks
RewriteEngine on

高于上一个陈述。

相关问题