【问题标题】:300 Multiple choices300多项选择
【发布时间】:2013-12-19 11:53:18
【问题描述】:

我的网站有问题,或者更具体地说是导航问题。

首先解决问题;

300 多页; 它对 url 执行此操作

   http://mysite.co.uk/services.phpdiamond-plus.php
   http://mysite.co.uk/services.phpdiamond/

应该是;

   http://mysite.co.uk/services/diamond-plus.php
   http://mysite.co.uk/services/diamond.php

我的文件结构;

root/services/diamond-plus.php
root/services/diamond.php

在选择 diamond-plus.php 时,无论我处于什么目录或级别,它只会显示带有上述 url 的页面,我有一个类似的 url,它们都发生了.

我包括我的导航并像这样使用相对网址;

/services/diamond-plus.php

原来在上面的目录中有一个 services.php 页面,我已经改变了。我也禁用了我的 .htaccess 文件进行测试,问题仍然存在。

有什么想法吗?

--- 编辑---

包括导航部分 -

a href="/services/diamond.php" >Diamond</a

.htaccess 文件

options +FollowSymLinks -MultiViews
Options +Indexes
AcceptPathInfo Off
RewriteEngine on

Redirect 301 /mysite-service-diamondplus.html http://mysite.co.uk/services/diamond-plus.php 

Redirect 301 /mysite-service-diamondplus http://mysite.co.uk/services/diamond-plus.php 

什么都没有改变,它不再给我错误了.. 更改 .htaccess 有时需要几分钟吗?

【问题讨论】:

  • 你能发一些代码吗?
  • @Vereos 添加了一些小问题,不知何故错误已自行修复,但我需要永久修复!

标签: html .htaccess relative-path


【解决方案1】:

您可以在DOCUMENT_ROOT/.htaccess 文件中尝试此代码:

RewriteEngine On

RewriteRule ^(.+?\.)php([^/]+)$ /$1/$2.php [L,NC,R=301]

RewriteRule ^(.+?\.)php(.+?\.php)$ /$1/$2 [L,NC,R=301]

【讨论】:

  • 这段代码是如何工作的?是否通过目录级别匹配文件?
  • 您是否在 DOCUMENT_ROOT/.htaccess 文件中尝试过这些?如果它不起作用,请告诉我它对于哪些 URL 不起作用。
【解决方案2】:

不需要 RewriteRules 来解决这个问题..

如果您将 index.html 或 index.htm 作为 DirectoryIndex 中的第一个值,它将尝试首先加载它们。我将 index.php 作为加载的第一个脚本,然后出现 Multiple Choices 300 错误离开。虽然我的旧配置从未出现 Multiple Choices 300 错误。它与将 PHP 更新到版本 v5.4.16 或更高版本有关。

【讨论】:

  • 这个问题来自 2013 年,因此这些措施现在可能是多余的。感谢您的更新。
猜你喜欢
  • 2015-12-15
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 2015-01-16
  • 2013-04-20
  • 2022-07-16
  • 1970-01-01
  • 2018-08-02
相关资源
最近更新 更多