从网站 URL 中删除 index.php

2023-12-07

我正在使用 Kohana 框架(但我认为它与这个问题无关)并且可以像这样访问页面

http://www.example.com/articles/
http://www.example.com/index.php/articles/

现在,根据经验,我通常会尝试调整 .htaccess 以仅允许页面的一种方式进入,并默默地重定向其他常见方式。

本质上,在上面的第一个 URL 中,地址实际上在内部重定向到第二个示例。

我想要做的是强制任何第二类型的 URL 变成第一类型的 URL。我通常对 .htaccess 不太有信心,我的第一次尝试是抛出一些意想不到的结果(例如有时无限循环)

这是我想出的

RewriteRule ^index\.php/(.*) $1 [NC,L,R=301]

谁能告诉我我做错了什么,如果你也遇到了这个问题,你是如何解决的?

EDIT

我决定发布我的整个 .htaccess,以便可以检查我的所有重定向。

# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /~toberua/


# file not found page
    ErrorDocument 404 /404/
    ErrorDocument 403 /403/

# get people out of my directories
    Options -Indexes

# default page to load
    DirectoryIndex index.php

# add trailing slash if missing
    RewriteRule ^(([a-z0-9\-]+/)*[a-z0-9\-]+)$ $1/ [NC,R=301,L]

# redirect /favicon.ico requests
     RewriteCond %{REQUEST_URI} !^/images/layout/favicon\.ico [NC]
     RewriteCond %{REQUEST_URI} favicon\.(gif|ico|png|jpe?g) [NC]
     RewriteRule (.*) images/layout/favicon.ico [R=301,L]

# send /home back to TLD
     RewriteRule home/ $1  [NC,R=301,L]

# ensure there is no /index.php in the address bar
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.php\ HTTP/
    RewriteRule ^(.*)index\.php$ $1 [R=301,L] # this was my attempt to stop /dir/index.php and make it simply /dir/

    RewriteRule ^index\.php/(.*) $1 [NS,NC,L,R=301]

# Protect application and system files from being viewed
RewriteRule ^(application|modules|system) - [F,L]

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT,L]

尝试这个:

RewriteRule ^index\.php/(.*) $1 [NS,NC,L,R=301]

你没有处理的是all请求可以重写,当您进行重写时,它会生成一个子请求——它也可以重写。因此,您最终将 /articles 重写为 /index.php/articles,然后在该问题的子请求中,将 /index.php/articles 重写为 /articles 并生成 301 重定向的新请求,如此往复。添加 NS 标志将使此规则不适用于子请求,我认为这应该可以解决您的问题,除非您还在 /articles -> /index.php/articles 重写上执行 301 (但这将是疯狂的)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从网站 URL 中删除 index.php 的相关文章

随机推荐

  • 在解密程序中使用负数取模时出现问题

    我对 C 相当陌生 最近一直致力于制作一个简单的加密 解密程序 我设法很好地进行了加密 但在解密方面遇到了障碍 相关代码如下 加密 其中 asciinum 是字母的 ascii 值 k 是要移动的 vigenere 密钥 shifts lo
  • 计算对象数组中的重复项

    我的服务器端 JS 中有一个对象数组 如下所示 Company IBM Person ACORD LOMA Company IBM Company MSFT Place New York 我需要迭代这个结构 检测任何重复项 然后创建沿着每个
  • 单独编译模式下 cuda 代码的 mex 链接

    我正在尝试在 Linux 下的 MATLAB mex 中使用 CUDA 代码 使用 整个程序编译 模式 它对我来说效果很好 我在 Nsight 中执行以下两个步骤 1 将 fPIC 作为编译器选项添加到每个 cpp或 cu文件中 然后分别编
  • C# 类型名称而不是 CLR 类型名称

    typeof int Name 将返回 System Int32 有谁知道返回 int 的方法 C 关键字 int double string 的类型并不多 因此您也许可以编写自己的映射函数 从系统类型名称到相应的 C 关键字
  • Intellij 错误:内部缓存已损坏或格式过时

    当我在 Intellij 中构建 Java 项目时 我间歇性地收到错误 内部缓存已损坏或格式过时 强制项目重建 java io FileNotFoundException C target classes ehcache xml 访问被拒绝
  • 正则表达式误解或只是破坏了实现?

    我尝试了一个非常简单的用法regex search并且不明白为什么我没有得到匹配 唉 gcc C 0x implementations 4 5 似乎不起作用 我收到链接错误here 但这是我的 gcc 4 7 0 尝试 非常简单 inclu
  • 使用 GROUP BY 获取最后的条目

    我在 GROUP BY 方面遇到问题 它返回它可以找到的第一个条目 但我希望它返回最后一个条目 那可能吗 这是我的查询 准备好的查询 SELECT stamp user stamp date stamp type FROM rws stam
  • 如何使用字典替换 Pandas 系列中的多个子字符串?

    我有 Pandas 系列的琴弦 我想对多个子字符串进行多次替换per row see testdf pd Series Mary went to school today John went to hospital today to sub
  • 如何正确插入允许 LD_PRELOAD 链接的 malloc

    我创建了一个共享库 它插入 malloc 和相关调用 效果很好 但有一些注意事项 有一点是行不通的 我期望能够链接插入器 以便我可以运行类似的东西 LD PRELOAD path to mymalloc so usr lib64 jemal
  • Android Studio 0.4 & 黄油刀

    我无法获取 Android Studio 0 4 gradle 项目 和 Jake Wharton 的牛油刀一起玩得好 对视图 应该注入的 ViewPager 的引用始终为空 我尝试启用注释处理 设置 gt 编译器 gt 注释处理器 gt
  • TypeScript 永远不会在条件类型中输入不一致的匹配?

    在下面的代码中 您会注意到类型Result1 is never 但类型test3 is 我无法理解这一点 考虑到他们都在阅读 为什么结果不一样never输入来自MyEvents type EventArgs
  • 将 csv 导入到 JTable

    我有一个 csv 文件 我想将其导入到 JTable 中 有没有一个简单的例子展示如何将csv文件导入到JTable 使用 OpenCSV CSVReader reader new CSVReader new FileReader your
  • 一张图像中的多个 OHLC 数据集

    如何使用 JFreeChart 在一张图像中绘制多个数据集的图表 本质上 我想在一张图像中绘制股票的价格及其移动平均线 我尝试获取 XYPlot 并添加第二个数据集 但它不起作用 DefaultOHLCDataset dataset new
  • 使用分页进行 JavaFX TableView 过滤(一起)

    我做了一些研究表格视图 s Filtering and Pagination分别地 过滤 this帖子根据我的需要帮助了我 分页 this this帖子也帮助了我 I want to combine them together like s
  • `>*` 选择器无法从父组件到子组件工作

    我有以下角度组件 div div
  • 复制命名空间的所有元素,不复制任何其他元素

    我们有一堆 html 页面文件 但其中包含额外的 xml 元素 全部以我们公司名称 TLA 为前缀 为我现在正在重写的旧程序提供数据和结构 表格示例
  • 从 Uri Android Lollipop 获取路径名称

    棒棒糖版本 我用过这个code从 Uri 确定文件路径 工作正常 但如果我从下载的应用程序中选择文件 从 URI 获取真实路径 API 19功能对我不起作用 例如 本例的整个 Id 等于 document 4 并且我的应用程序崩溃了 好的
  • 如何使用 EclipseLink 和 Joda-Time 将 UTC 日期时间存储到数据库中?

    我一直在摸索以下 EclipseLink乔达时间转换器长时间存储日期时间UTC进入MySQL数据库完全没有成功 import java util Date import org eclipse persistence mappings Da
  • Html 上下索引

    使用 css 上下不等词放入 html 的任何方法 例如 或 我还需要拉丁字母 Use the
  • 从网站 URL 中删除 index.php

    我正在使用 Kohana 框架 但我认为它与这个问题无关 并且可以像这样访问页面 http www example com articles http www example com index php articles 现在 根据经验 我