Mod rewrite 从重新写入的url中删除正斜杠

Mod rewrite 从重新写入的url中删除正斜杠,mod-rewrite,redirect,url-rewriting,Mod Rewrite,Redirect,Url Rewriting,我知道这听起来有点傻,但没有其他办法解决它。我对正斜杠有问题/。我想将其从url中删除,因为这会给提供可信或不可信url的浏览器带来一些混乱 这是主域的代码: RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] RewriteCond %{REQUEST_URI} ^/$ RewriteRule ^ /user [R=301,L] 这是上面代码的输出:ht

我知道这听起来有点傻,但没有其他办法解决它。我对正斜杠有问题
/
。我想将其从url中删除,因为这会给提供可信或不可信url的浏览器带来一些混乱

这是主域的代码:

RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^ /user [R=301,L]
这是上面代码的输出:
https://www.mydomain.com/user/

但我希望url重定向到此:

https://www.mydomain.com/user
https://www.mydomain.com/end
我还想删除此url中的正斜杠:

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(?:\.\w+|/)$
RewriteRule (.*) /$1/ [R,L]
RewriteCond %{REQUEST_URI} ^(/end)
RewriteRule ^(.*)$ /top/right/left/bottom/$1 [L]
RewriteCond %{REQUEST_URI} ^/top/right/left/bottom
RewriteRule top/right/left/bottom/(end)(/(./*))?$ $1$2 [R,L]
这是上面代码的输出:
https://www.mydomain.com/end/

但我希望url重定向到此:

https://www.mydomain.com/user
https://www.mydomain.com/end
最后一个问题:为什么我必须在FF或chrome等浏览器中自己编写www.,以便重定向到所需的url


欢迎所有评论

将url存储在变量中,并执行
rtrim
删除尾部斜杠

$redirectURL = rtrim($redirectURL, "/");

将url存储在变量中,然后执行
rtrim
删除尾部斜杠

$redirectURL = rtrim($redirectURL, "/");

看起来上面的重写规则是我写的。所以优化它,使URL不以
/
https://www.mydomain.com/end

将整个(从
RewriteCond%{ENV:REDIRECT_STATUS}200
替换为
RewriteRule top/right/left/bottom/(end)(/(./*)?$$1$2[R,L]
)对象,如下所示:

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]

RewriteRule ^(end)(?:/(.*))? /top/right/left/bottom/$1/$2 [L]

RewriteRule ^top/right/left/bottom/(end)(/.*)?$ $1$2 [R,L]
请记住,如果您使用这样的正斜杠进行访问:
https://www.mydomain.com/end/
正斜杠不会被删除

如果要删除
/
:用以下规则替换最后2条规则:

RewriteRule ^(end)(?:/(.+))? /top/right/left/bottom/$1/$2 [L]

RewriteRule ^(end)/$ $1 [R,L]   
RewriteRule ^top/right/left/bottom/(end)(/.*)?$ $1$2 [R,L]

看起来上面的重写规则是我写的。所以优化它,使URL不以
/
https://www.mydomain.com/end

将整个(从
RewriteCond%{ENV:REDIRECT_STATUS}200
替换为
RewriteRule top/right/left/bottom/(end)(/(./*)?$$1$2[R,L]
)对象,如下所示:

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]

RewriteRule ^(end)(?:/(.*))? /top/right/left/bottom/$1/$2 [L]

RewriteRule ^top/right/left/bottom/(end)(/.*)?$ $1$2 [R,L]
请记住,如果您使用这样的正斜杠进行访问:
https://www.mydomain.com/end/
正斜杠不会被删除

如果要删除
/
:用以下规则替换最后2条规则:

RewriteRule ^(end)(?:/(.+))? /top/right/left/bottom/$1/$2 [L]

RewriteRule ^(end)/$ $1 [R,L]   
RewriteRule ^top/right/left/bottom/(end)(/.*)?$ $1$2 [R,L]


我很确定这叫做正斜杠。这是斜杠,不是反斜杠。谢谢@MikeChristensen。我想你是对的。我将编辑这篇文章。好的,现在我知道它是斜杠/正斜杠。。。那么我该如何摆脱它呢?我很确定这叫做正斜杠。这是斜杠,不是反斜杠。谢谢@MikeChristensen。我想你是对的。我将编辑这篇文章。好的,现在我知道它是斜杠/正斜杠。。。那么我该如何摆脱它呢?谢谢@siva的回答。然而,我对这些东西一无所知,几天前才开始学习。你能给我举个简单的例子,让我了解这个想法,然后试着把它应用到我的.htaccess上吗?感激it@Digitalsite:谢谢。加入此聊天室@Digitalsite:我正在聊天室等待。对不起,我没有注意到你的帖子。我正试图进入房间,但无法进入,我不知道为什么!!让我们感谢@siva的回答。然而,我对这些东西一无所知,几天前才开始学习。你能给我举个简单的例子,让我了解这个想法,然后试着把它应用到我的.htaccess上吗?感激it@Digitalsite:谢谢。加入此聊天室@Digitalsite:我正在聊天室等待。对不起,我没有注意到你的帖子。我正试图进入房间,但无法进入,我不知道为什么!!让我们感谢@ThinkingMonkey。是的,规则是你写的:)。我很高兴你能路过这里,解释一下整件事的一些要点。谢谢@ThinkingMonkey。是的,规则是你写的:)。我很高兴你能路过,解释一下整件事的一些要点。