【问题标题】:Why do I need to add index.php in order to route my website correctly? [getkirby]为什么我需要添加 index.php 才能正确路由我的网站? [getkirby]
【发布时间】:2016-02-08 09:39:06
【问题描述】:

我将代码上传到服务器。它正确地启动了主页。但是当我按下任何链接时,我得到 404 not found 错误。我发现我需要将 index.php 添加到我的 url 中才能正常工作。 所以它会是这样的:

mydomain.somee.com/myWebsite/index.php/anotherPage

当我在本地使用 Xamp 作为服务器工作时,我没有遇到任何这些问题。 我将网站上传到 some.com 后遇到了这些问题,该网站显然不使用 .htaccess 文件(编辑或删除无效)。

如何自动添加这个 index.php 并对用户隐藏?

我没有更改任何系统文件或 htaccess 如果您需要更多文件或说明,请告诉我。

【问题讨论】:

  • 你的 .htaccess 里面有什么?
  • index.php 一般是 DirectoryIndex 文件。您可以将其设置为任何值,例如home.php 或 default.php。这是项目/文件夹的入口脚本。
  • .htaccess 应该适用于任何 php apace 服务器。但我使用的服务器是windows虚拟服务器

标签: php .htaccess url-routing web-hosting kirby


【解决方案1】:

您需要通过 index.php 文件重定向所有页面,但将其从 URL 中删除。

在您的根 .htaccess 文件中写入以下规则:-

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

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ %1 [R=301,L]

要了解 htaccess 规则是如何工作的,link 将帮助您:)

希望对你有帮助:)

【讨论】:

  • 感谢第一次重播,第一部分已经默认写在.access中了。问题是:Somee.com 使用的 Windows 虚拟服务器显然不使用 .htaccess
猜你喜欢
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
  • 2012-12-07
  • 2016-08-03
  • 2012-08-08
相关资源
最近更新 更多