【问题标题】:rewrite url is not working in core php localhost project重写 url 在核心 php localhost 项目中不起作用
【发布时间】:2017-12-23 10:11:16
【问题描述】:

我必须把我的网址变成一个友好的网址。

我的.htaccess 文件中有这个:

RewriteRule http://localhost/test/client/this_is_test_page.php$ http://localhost/test/test-page [NC,R=301,L]

但现在我收到 HTTP 500 内部服务器错误。

这可能是什么原因造成的,我该如何解决?

【问题讨论】:

  • HTTP 500 是一般的服务器端错误消息。每当您看到这一点时,您的第一步应该是检查错误日志以获取更多详细信息。

标签: php url-rewriting user-friendly


【解决方案1】:

根据 apache 文档,您的模式中不应包含 HTTP_HOST:

RewriteRule 由三个由空格分隔的参数组成。这 论据是:

  1. 模式:哪些传入 URL 应受规则影响;
  2. 替换:匹配的请求应该发送到哪里;
  3. [flags]:影响重写请求的选项。

模式是一个正则表达式。它最初是(对于第一个 重写规则或直到发生替换)匹配 传入请求的 URL 路径(主机名之后的部分,但 在任何表示查询字符串开头的问号之前)

你的规则应该是这样的:

RewriteRule /test/client/this_is_test_page.php$ /test/test-page [NC,R=301,L]

您应该启用mod_rewriteRewriteEngine OnAllowOverride

【讨论】:

  • 错误的 .htaccess 文件会导致服务器错误 (500),您应该发布整个 .htaccess 以获得问题的答案。
  • 如何在测试页之前跳过测试?
  • RewriteBase /test(我猜这是你的整个网站,检查httpd.apache.org/docs/current/fr/mod/…
  • 我的所有页面都在测试目录中,但我想在 url 中没有测试目录的情况下访问它们,除了管理 url。我该怎么做?
  • Oulalahakabu 你能帮帮我吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-25
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-18
  • 2020-11-01
相关资源
最近更新 更多