Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 重写规则以删除所有斜杠_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache 重写规则以删除所有斜杠

Apache 重写规则以删除所有斜杠,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,嗨,我什么都试过了,找不到解决办法。 当用户访问此URL时 我希望它重写为(不使用重定向) 如何删除“/”? 非常感谢您的帮助。尝试使用此规则(您的htaccess必须位于文档根文件夹中) 编辑:此代码仅适用于示例中的URL(在查询字符串中有3个斜杠和pid) EDIT2:如果您有多个参数(可能顺序不同),为了简化查询字符串,我们不再需要RewriteCond,而是需要QSA标志 RewriteRule ^/?([^/]+)/([^/]+)/([^/]+)/([^/]+)\.jpg$

嗨,我什么都试过了,找不到解决办法。 当用户访问此URL时

我希望它重写为(不使用重定向)

如何删除“/”? 非常感谢您的帮助。

尝试使用此规则(您的htaccess必须位于文档根文件夹中)

编辑:此代码仅适用于示例中的URL(在查询字符串中有3个斜杠和
pid

EDIT2:如果您有多个参数(可能顺序不同),为了简化查询字符串,我们不再需要
RewriteCond
,而是需要
QSA
标志

RewriteRule ^/?([^/]+)/([^/]+)/([^/]+)/([^/]+)\.jpg$ /$1$2$3$4.jpg [L,QSA]

如果该规则应该删除任意数量的斜杠,而不仅仅是固定数量的斜杠,那么您必须创建一个循环。为此,可以使用,这将导致重写过程以当前URL重新开始。执行此操作时请小心,如果操作错误,可能会导致无限循环;)

不过,这应该行得通。你可以测试一下


[编辑]:完全重写-我忘记了
[N]
标志;)

这将只删除前3个斜杠。如果有更多,这些将保留。我只是以问题中的URL为例。你可能是对的——我不知道,我根本不想挑剔你的答案——但在不同的URL中,可能有很多斜杠需要删除,而不仅仅是3个。你是对的。我回答了关于OP的例子。让我们看看这是怎么回事,也许他的urlsI中有更多的斜杠。我将永远有3个斜杠。谢谢你。。。我有更多的查询字符串(pid、qs和d)我如何修改您的示例以包括其他查询字符串?我在回答中添加了一个规则谢谢它起作用了是的,它将始终有3个斜杠,但我只包括一个查询参数还有2个其他的qs=和d=当我传入其他查询字符串时,这是一个真正的调用,它停止工作。循环的例子好像进入了一个无限循环,我需要一个[L]来阻止它吗?谢谢你链接这个工具。这是非常有用的!
RewriteRule ^/?([^/]+)/([^/]+)/([^/]+)/([^/]+)\.jpg$ /$1$2$3$4.jpg [L,QSA]
RewriteRule ^/?(.*)/(.*) $1$2 [N]