【问题标题】:.htaccess RewriteRule with pageparameters [duplicate]带有页面参数的.htaccess RewriteRule [重复]
【发布时间】:2014-05-18 12:44:22
【问题描述】:

我终于在 Stackoverflow 上问了我的第一个问题:

我正在创建一个网站,它具有基本模板 (header, menu, footer) 作为 index.php,所有内容链接都将调用 index.php 并带有一个名为 '?页= asdf'。 (我希望这是一个商业网站的合理结构。)

<div class="page_wrapper">
    <?php 
        if (isset($_GET['page'])){
                include 'tpl/'.$_GET['page'].'.php';    
        }
        else{
            include 'tpl/start.php';
        }
    ?>
</div>

现在我想重写最后没有 .php 的 url,比如 page.com/index.php?get=products 应该是 page.com/products。 “关于”、“联系”等也是如此。 并且起始页应该总是像 page.com/

其中一个重点是它应该是英语和德语的多语种,我真的不知道该怎么做。我必须用德语和英语制作每个文件名吗?

我在 2 年前只用一种语言做到了,但我不记得我是如何做到的,并且丢失了源代码。

知道了:

我使用了 RewriteRule ^([^/]+)/?$ index.php?page=$1 [L]

感谢@Jon Lin 的帮助,你让我想到了这个想法。

【问题讨论】:

  • include 'tpl/'.$_GET['page'].'.php'; - 除非你过滤得到的参数 - 这是一个糟糕的主意。

标签: php .htaccess mod-rewrite url-rewriting


【解决方案1】:

试试:

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

【讨论】:

  • 谢谢,我看到了背后的逻辑,但我不工作。我的 .htaccess 正在加载,当我将垃圾放入其中时,我得到了 ERR500。
猜你喜欢
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 2021-08-07
  • 2013-12-21
  • 2022-03-22
  • 2012-10-29
  • 2011-12-05
  • 1970-01-01
相关资源
最近更新 更多