【问题标题】:htaccess file to tidy up urls causes 500 server error if a trailing slash is added to the url如果将尾部斜杠添加到 url,则用于整理 url 的 htaccess 文件会导致 500 服务器错误
【发布时间】:2017-12-08 22:35:42
【问题描述】:

你好,有谁能帮忙,

我编写了一个 htaccess 文件来整理我的网址并删除 .php。一切似乎都运行良好,但如果在 url 上添加斜杠,现在 .php 已经消失,我会收到 500 服务器错误。我真正想要发生的是,如果添加了斜杠,那么它会被顺利处理并重定向到无斜杠选项。这似乎适用于主页,但不适用于任何其他页面。

我的网站是 www.bekcruddace.co.uk & htaccess 文件是:

RewriteEngine on

#Redirects example.com to www.example.com
RewriteCond %{HTTP_HOST} ^bekcruddace.co.uk$
RewriteRule ^/?$ "http\:\/\/www\.bekcruddace\.co\.uk\/" [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

请各位大神指点一下?

我还应该提到新闻部分是一个独立运行的单独插件,因此网址略有不同并且与我的问题无关。

谢谢。

【问题讨论】:

  • 哪个请求 url 你得到了 500 服务器错误?
  • 您好,如果您添加尾部斜杠,除了商店、新闻和主页之外,所有页面都会返回 500 服务器错误。

标签: .htaccess mod-rewrite server-error


【解决方案1】:

如果您请求 /file/,您的规则会将其重写到无效位置 /file/.php 。这就是您的服务器产生 500 错误的原因。

您需要在您的模式中使斜线可选,以便将斜线从捕获组中排除:

RewriteRule ^(.*)/?$ $1.php

【讨论】:

  • 嗨,谢谢你的回答,但我已经有了类似的东西。我已经按照您的建议将 RewriteRule ^(.*)$ $1.php 替换为 RewriteRule ^(.*)/?$ $1.php 并且仍然存在相同的问题 - 将尾部斜杠添加到 url 时出现 500 服务器错误...?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-17
  • 2021-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多