gpt4 book ai didi

apache - mod_rewrite : add trailing slash?

转载 作者:行者123 更新时间:2023-12-04 01:55:28 28 4
gpt4 key购买 nike

我正在使用 .htaccess 文件将目录请求定向到提供有关该目录的信息的自定义 php 文件(我希望浏览器显示的 url 不会更改)。

这是 .htaccess 文件的相关部分。

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ /myphp.php?url=%{REQUEST_URI} [QSA,L]

如果您转到一个目录并包含尾部斜杠,这将很有效:
http://domain.com/path/

但是没有尾部斜杠,它不会
http://domain.com/path

url(在浏览器中显示)变成:
http://localhost:8888/path/?url=/path

我尝试通过在此规则上方添加规则来解决此问题:
RewriteCond %{REQUEST_FILENAME} -D
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L]

但这对我不起作用。

如果被省略,我怎样才能让 .htaccess 添加尾部斜杠,然后就好像它已经在那里一样?

谢谢

更新:
根据要求,这里是整件事。
<IfModule mod_rewrite.c>
RewriteEngine On

#force trailing slashes on real directories
RewriteCond %{REQUEST_FILENAME} -D
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L]

#use the directory viewer on directories without an index page
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ /myphp.php?url=%{REQUEST_URI} [QSA,L]

</IfModule>

最佳答案

这一行:

RewriteCond %{REQUEST_FILENAME} -D

本来应该:
RewriteCond %{REQUEST_FILENAME} -d

关于apache - mod_rewrite : add trailing slash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3133111/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com