【问题标题】:Rewritecond htaccess remove all characters after slash (/)Rewritecond htaccess 删除斜杠 (/) 后的所有字符
【发布时间】:2015-02-21 14:13:14
【问题描述】:

我有以下htaccess

Options -Indexes +FollowSymLinks
RewriteEngine on
RewriteBase /
ErrorDocument 404 /404.php
RewriteEngine On    
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ /$1 [R=301,L]

这是删除斜杠和我的网址的结尾。如何不仅删除斜线,还删除斜线后的所有字符?或者发送一个404也许?哪一个更好 ?怎么做?

例如 www.mysite/index.php/index.php 或其他任何东西。

【问题讨论】:

  • 你是说你只想为www.mysite.com/服务而不是别的吗?甚至没有图像、CSS 等?
  • 我要说的是,我想在斜杠 www.helo.com/index.php(/anything here) 之后删除所有多余的字符...所以当 / 被添加到 url 时它。我在 URL 上没有文件夹,所以每个页面都是单独的 something.php 或 something.php?something
  • 当用户在 .php 扩展名之后添加斜杠+字符时,网站会变得一团糟,没有 css 没有脚本。我希望能够通过发送 404 或从 URL 中删除并将页面恢复到基本 URL 来拒绝它......
  • 但您的所有文件都是这样吗?不只是php,还有其他的?此外,您不一定要担心希望搞砸自己的浏览的用户...如果您的所有链接都指向正确的 URL 等,您不必担心修复疯狂的用户 :) 您可以提供一个不错的 404页面,如果你想要,但除此之外......
  • 这就是我的意思,如何在斜线字符后添加 404 到所有额外字符???

标签: php apache .htaccess mod-rewrite


【解决方案1】:

如果您只是尝试删除斜线后的所有字符:

Options -Indexes +FollowSymLinks
ErrorDocument 404 /404.php
RewriteEngine on
RewriteBase /
RewriteRule ^([^/]+\.php)/.* $1 [R=301,L]

对于 404 错误将最后一行更改为:

RewriteRule ^[^/]+\.php/ - [R=404,L]

【讨论】:

  • / 之后的所有额外字符是否不仅适用于 .php,而且适用于 404,请在我的个人资料中查看我新发布的问题
猜你喜欢
  • 2017-05-03
  • 2016-01-03
  • 2014-02-26
  • 1970-01-01
  • 2015-01-15
  • 2012-08-16
  • 2018-07-26
  • 1970-01-01
相关资源
最近更新 更多