【问题标题】:How to set an index page in a subfolder如何在子文件夹中设置索引页
【发布时间】:2015-09-22 18:39:55
【问题描述】:

我的网站有以下文件/文件夹结构:

index.php 
games.php 
/category-games 
/category-games/game-1.php 
/category-games/game-2.php

文件games.php 应该是/category-games/ 的类别主页。当有人访问mysite.com/category-games/ 时,有什么方法可以显示此页面?我试图将页面放入文件夹并将其命名为 index.php 但我想这不起作用。

可能需要通过 .htaccess 执行此操作。任何人都可以帮助我吗?现在如果有人试图访问mysite.com/category-games/它会直接进入404。

干杯!

【问题讨论】:

  • 如果你称它为 index.php 它应该可以工作,但可能重复:stackoverflow.com/questions/19322345/…
  • @Djip 是的,我就是这么想的。但它不起作用。即使我称它为 index.php,它仍然会变为 404。

标签: php .htaccess mod-rewrite subdirectory


【解决方案1】:

案例 1: 如果 /category-games/ 没有 .htaccess,则将此规则放在根 .htaccess 中:

RewriteEngine On

RewriteRule ^category-games/$ games.php [L,NC]

案例2:如果/category-games/里面有一个.htaccess,那么使用这个规则

RewriteEngine On

RewriteRule ^/?$ /games.php [L]

【讨论】:

  • 行得通!但它与我的 RewriteRule 冲突,它从所有文件中删除了 .php 扩展名。 RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] 只有当我删除 rewriteRule 它才有效,但我想保留它。你有解决办法吗?
  • 我想我可以将您的规则放在 RewriteRule 之上以删除 .php 扩展名。这是好习惯吗?至少它有效。
  • 是的,这绝对需要放在您之前的规则之上。 .htaccess 中的规则排序非常重要
【解决方案2】:

好吧,如果您正在考虑进行组织和系统的编码,那么我建议您使用 PHP 路由库。有许多现成的配对路由类可用。如果你想使用它,它肯定会帮助你使你的代码更有条理。

比如你想访问mysite.com/category-games/,在后台,路由会触发你对应的页面。

以下代码将尝试访问 mysite.com/category-games 文件夹,但它会触发 your-page.php 文件,用户只能看到 mysite.com/category-games 网址,没有其他内容。

 $router->any('/category-games', function(){
    return 'your-page.php';
});

不酷吗?

路由库列表-

希望能帮助您完成您的项目。周全

【讨论】:

    【解决方案3】:

    尝试在 /category-games/ 下创建一个名为 index.html 的新页面,内容如下:

     <meta http-equiv="refresh" content="1;url=http://yoursite.com/category-games/games.php">
    

    默认情况下会加载 index.html,但会立即重定向到 games.php。 1 是在重定向之前等待多长时间。 1 是最好的,这样它就不会使您的浏览器过载。

    Toodles!

    -HewwoCraziness

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-24
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多