【问题标题】:URL Rewrite Rule shows blank page with textURL 重写规则显示带有文本的空白页
【发布时间】:2015-01-03 16:55:07
【问题描述】:

我正在学习如何重写 url,并试图在我的 ubuntu 服务器中这样做。我设法自己激活了 Allowoverride All 并且我有 htacess 工作。

我想更改此网址,例如:

http://serverismai/myapi/public/rest/navigate.php

我尝试这样做:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^home(.*)$ myapi/public/rest/curso/navigate.php/$1 [L]
</IfModule>

我尝试了各种解决方案,但这是我得到的最接近的解决方案。 url 会自动更改,但如果我插入 http://serverismai/myapi/public/rest/home,我会看到一个空白页面,其中写有我的一些网站 html(甚至不是我试图重写 url 的页面的 html)。

我对此很陌生,所以我想知道重写规则是否有问题,或者我的错误是否在其他地方......

谢谢!

【问题讨论】:

标签: .htaccess url mod-rewrite url-rewriting rewrite


【解决方案1】:

您可以在/myapi/public/rest/.htaccess 文件中使用此代码:

RewriteEngine On
RewriteBase /myapi/public/rest/

RewriteRule ^home/?$ curso/navigate.php [L,NC]

【讨论】:

  • 做到了,但它发生了同样的事情,我看到另一个页面的 html 文本!我的根 htacess 在 myapi/public/rest 中,对吗?或者我是否需要它在我拥有虚拟主机的 ubuntu 服务器中执行某些操作?我已经阅读过它,但我认为它不存在我应该重写...问题是我在我的服务器 2 服务中,休息和肥皂所以我想我不应该修改根服务器 htacess,我是错还是对?感谢您的帮助
  • 如果是/myapi/public/rest/.htaccess,请尝试我更新的答案。
  • 是的,现在它正在工作,我可以使用 serverismai/myapi/public/rest/home 访问。重写规则应该是 RewriteRule ^home/?$ navigate.php [L,NC] (没有光标)顺便说一句。谢谢你。最后一件事,url 自动转到 navigate.php,当用户转到页面时它会发生变化,但我认为这可能是因为我的数据库链接,或者它应该通过 Rewrite 自动更改?再次感谢您
  • 实际上这条规则并没有改变浏览器中的 URL,它只是在内部路由它。
  • 嗯,好吧,我会多研究一下 url 重写的概念,我的主要目标是让 url 链接更干净。我将此标记为答案,感谢您的帮助,这对我来说是一个很好的推动:)
猜你喜欢
  • 2023-03-31
  • 2013-11-10
  • 1970-01-01
  • 2020-06-24
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
  • 2018-04-13
相关资源
最近更新 更多