微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

删除尾部的斜杠

我想使用不带斜线的页面。 所以现在我想我的url与一个结尾的斜线redirect(使用.htaccess)到相同的url,而不是结尾的斜杠。

我有两个.htaccess文件

<IfModule mod_rewrite.c> RewriteEngine On RewriteRule (.*) public/$1 </IfModule>

还有一个在我的公共文件夹中:

DirectoryIndex index.html index.PHP Options -Indexes <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.PHP?url=$1 [PT,L] </IfModule>

我试图将以下规则添加到公用文件夹中的.htaccess文件中:

.htaccess目录的RewriteRule

htaccess重写传递两个variables或一个取决于如果两者都可用?

.htaccess用get参数重写url

.htaccess:如何限制IP访问单个文件

特殊字符和URL重写

RewriteRule (.*)/$ $1 [R,L]

但是:example.com/public/page/view/2/

redirect到:example.com/**D:/webserver/**public/page/view/2

这显然不是我想要的…

删除密码保护.htaccess(Nginx

lighttpd上的apache .htaccess文件

.htaccess mod_rewrite基于IP的redirect:如何将所有stream量redirect到特定的子目录,除了我的IP?

.htaccess将子域redirect到域

使用HTTP_HOST来标识以前的主机名称

为什么你有几个.htaccess文件? 在哪里重定向到公共/ $ 1存储? 你可能会面临压倒性的RewriteRule指令,这些指令会让你感到复杂。

不知道你的设置是很难说你应该如何使用重写 – 你能指定什么东西实际上看起来像?

wordpress重定向取决于你的永久链接结构是什么。 因此,对.htaccess所做的任何更改都不会有什么帮助,因为wordpress会为你添加/删除它们,并在.htaccess完成之后执行wp_redirect()。 在最糟的情况下,你最终会有一个重定向循环。

解决方案是关闭wordpress重定向使用。

// perhaps an if(is_something()) before here ... add_filter('redirect_canonical','__return_false');

你应该把这个包含在一个if语句中,或者你对某个页面/目录等进行检查的地方。 把上面的代码直接放在你的函数文件中会关闭wordpress重定向,可能会破坏你的东西。

你有没有尝试添加

RewriteBase /public

到公用文件夹中的.htaccess文件,得到:

<Ifmodulee mod_rewrite.c> RewriteEngine On RewriteBase /public RewriteRule (.*)/$ $1 [R,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.PHP?url=$1 [PT,L] </Ifmodulee>

下面是一个Apache文档的例子,你可以用它来解决你的问题:

尾随斜线问题

描述:

每个站长都可以在引用目录的URL上唱一首关于尾部斜线问题的歌曲。 如果它们丢失了,服务器会抛出一个错误,因为如果你说/〜quux / foo而不是/〜quux / foo /,那么服务器搜索一个名为foo的文件。 而且因为这个文件一个它抱怨的目录。 其实它试图在大多数情况下解决它自己,但有时这个机制需要你模仿。 例如,你已经做了很多复杂的URL重写CGI脚本等

解:

这个微妙的问题的解决办法是让服务器自动添加结尾的斜杠。 要正确地做到这一点,我们必须使用外部重定向,所以浏览器正确地请求后续的图像等。如果我们只做了一个内部重写,这只适用于目录页面,但是当这个页面包含任何图像时会出错与相对URL,因为浏览器会请求一个内联的对象。 例如,在/ ~quux / foo / index.html中对image.gif的请求将变成/ ~quux/image.gif而不需要外部重定向

所以,要做到这一点,我们写道:

RewriteEngine on RewriteBase /~quux/ RewriteRule ^foo$ foo/ [R]

疯狂和懒惰甚至可以在homedir的顶级.htaccess文件中执行以下操作。 但请注意,这会造成一些处理开销。

RewriteEngine on RewriteBase /~quux/ RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.+[^/])$ $1/ [R]

资源

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐