htaccess中的RewriteRule:我一直看到原始网址

时间:2016-08-05 12:01:04

标签: php .htaccess url-rewriting

我一直在这里寻找答案,但似乎对其他人有效的解决方案并没有为我解决。

我想重写我的网址,以便它们看起来更好。

一个例子: 原始网址:     mywebsite.com/new/page.php?cat=web&view=thumbs 所需网址:     mywebsite.com/new/web/thumbs (目前我正在我的网站的一个子目录中开发这个网站,我称之为'新'..我提到这个,因为这可能是事情不起作用的原因,我不知道)

到目前为止我尝试了什么:

的index.php:

<body>

    <div id="wrapper">
        <a href="<?php echo "page.php?cat=web&amp;view=thumbs";?>"><div id="web-btn" class="button"></div></a> 
        <a href="<?php echo "page.php?cat=illu&amp;view=thumbs";?>"><div id="illu-btn" class="button"></div></a>
        <a href="<?php echo "page.php?cat=info";?>"><div id="info-btn" class="button"></div></a>
        <a href="<?php echo "page.php?cat=anim&amp;view=thumbs";?>"><div id="anim-btn" class="button"></div></a>
        <a href="<?php echo "page.php?cat=brand&amp;view=thumbs";?>"><div id="brand-btn" class="button"></div></a>
    </div>

</body>

href中有两个变量:'cat'和'view'。所以在htaccess(位于root)中我需要获取这两个变量。我试过这样的话:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^new/([^/]*)/([^/]*)$ /new/page.php?cat=$1&view=$2 [L]

我没有收到任何错误,但网址没有被重写,它们仍然如下所示: mywebsite.com/new/page.php?cat=web&view=thumbs

同样的问题但略有不同:

您可以点击以进入“单个”页面的缩略图页面设置如下:

<div id="thumbs" class="medium-10 columns thumbs">
  <?php 
  $x = 1;

    while ($x <= 20){
      $item = ${'item'.$x.$cat};
      $txt = ${'txt'.$x.$cat};
      if(isset($item)) { echo '

      <div class="small-6 medium-4 columns" id="'.$item.'">
        <a href="page-content.php?cat='.$cat.'&amp;view=singles&amp;item='.$item.'&amp;txt='.$txt.'"><img src="'.$cat.'/thumbs/'.$item.'.jpg" /></a>
      </div>

    '; }

  $x++;
  }
  ?>
</div>

这里的hrefs有4个变量:'cat','view','item'和'txt'。

现在,网址如下所示:     mywebsite.com/new/page-content.php?cat=web&view=singles&item=webproject1&txt=blaaaa

我想要像这样重写网址:     mywebsite.com/new/web/webproject1

我在htaccess中尝试了以下RewriteRule:

RewriteRule ^new/([^/]*)/([^/]*)$ /new/page-content.php?cat=$1&view=singles&item=$2&txt=blaaaa [L]

网址没有任何影响,但我没有错误。

更新的htaccess将是:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^new/([^/]*)/([^/]*)$ /new/page.php?cat=$1&view=$2 [L]
RewriteRule ^new/([^/]*)/([^/]*)$ /new/page-content.php?cat=$1&view=singles&item=$2&txt=blaaaa [L]

我可以想象出现问题,因为两个RewriteRules都开始完全相同(在两种情况下我都需要2个变量除以/),但另一方面......当我只使用第一个时它也不起作用规则。

我对htaccess的了解太少,而且我遇到了故障排除,所以我真的希望有人能给我一些见解。提前谢谢!

0 个答案:

没有答案