【问题标题】:RewriteCond makes includes 404RewriteCond 使包含 404
【发布时间】:2017-01-23 16:37:03
【问题描述】:

我在更改地址时遇到问题:

http://localhost/project/maps/pages/route.php?id=6680342be54df196c6cceba6624a10374dd6c51c1484853317

到

http://localhost/project/route/6680342be54df196c6cceba6624a10374dd6c51c1484853317

我设法通过 htaccess 做到这一点:

RewriteEngine On

RewriteRule ^routes/([0-9a-zA-Z]+) maps/pages/route.php?id=$1

但现在我在 route.php 内的所有包含中都有 404,例如:

<link href="../vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">

我的文件夹是这样的:

www
->project
 ->index.php
 ->maps
  ->vendor
   ->bootstrap
    ->css
     ->bootstrap.min.css
  ->pages
   ->route.php

我不想更改 maps 文件夹中的任何内容,因为这是由其他人开发的应用程序,但我不希望我的网站看起来像:

http://localhost/project/maps/pages/route.php

相反,我想要一些东西,一旦上传到我的服务器就会看起来像

http://website.com/route/6680342be54df196c6cceba6624a10374dd6c51c1484853317

无需将文件转储到主文件夹中。换句话说,我怎样才能使文件夹maps 完全分开但使用不同的地址?

谢谢。

【问题讨论】:

  • 为什么你的css链接里没有maps/?
  • 因为我是从页面文件夹内的“route.php”调用它

标签: html regex apache .htaccess mod-rewrite


【解决方案1】:

您可以放置​​重定向规则来修复/vendor/ 路径:

RewriteEngine On
RewriteBase /project/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/maps/ [NC]
RewriteRule (?:^|/)((?:vendor|data|dist|js|mapicon|includes)/.+)$ maps/$1 [L,NC,R=301,NE]

RewriteRule ^routes/([0-9a-zA-Z]+)/?$ maps/pages/route.php?id=$1 [L,QSA,NC]

【讨论】:

  • 我刚刚尝试过,但仍然有 38 404 个错误。还有其他解决方法吗?
  • 这是我在浏览器GET 404 http://myproject.com/vendor/metisMenu/metisMenu.min.js 和日志"GET /vendor/metisMenu/metisMenu.min.js HTTP/1.1" 404 上遇到的错误之一
  • bootstrap.min.css 也是如此,它们都在 vendor 文件夹中。我刚刚检查过,php 包含工作正常。 include_once('../includes/header.php'); 确实包含了 header.php,但它找不到 &lt;link href="../vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet"&gt;(该行在 header.php 内)。我的 .htaccess 和你发布的完全一样
  • 适用于供应商文件夹!我想我所要做的就是为maps 中的每个文件夹复制这两行,对吧?
  • data、dist、js、less、mapicon、vendor、includes、pages这些都是
猜你喜欢
  • 2021-06-10
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多