小编bki*_*kit的帖子

mod_rewrite:添加尾部斜杠?

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

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

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

如果您转到目录并包含尾部斜杠,这很有效:

http://domain.com/path/
Run Code Online (Sandbox Code Playgroud)

但没有尾随斜线,它没有

http://domain.com/path
Run Code Online (Sandbox Code Playgroud)

网址(在浏览器中显示)变为:

http://localhost:8888/path/?url=/path
Run Code Online (Sandbox Code Playgroud)

我试过通过在此规则之上添加规则来修复此问题:

RewriteCond %{REQUEST_FILENAME} -D
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L]
Run Code Online (Sandbox Code Playgroud)

但那不适合我.

如果省略了尾部斜杠,我怎么能得到.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>
Run Code Online (Sandbox Code Playgroud)

apache .htaccess mod-rewrite

11
推荐指数
2
解决办法
3万
查看次数

PHP的http流包装缓存文件?细节?

我正在寻找有关PHP的http流包装器是否以及如何尝试缓存文件的信息.任何人都可以指出这方面的信息吗?

回答这个问题,PHPs fopen函数是否实现了某种缓存?,建议包装器可能会尝试尊重缓存标头,但我没有在文档中找到任何关于此的内容.

具体来说,我想知道:

  • PHP缓存文件是否会访问http:// urls.
  • 如果确实如此,它会保留多长时间?
  • 缓存的最大大小是多少?
  • 每个文件的最大大小是否会缓存?
  • 缓存是否在请求之间保持不变?
  • 出于好奇,它会在内存或磁盘上缓存吗?哪里?

php

3
推荐指数
1
解决办法
635
查看次数

标签 统计

.htaccess ×1

apache ×1

mod-rewrite ×1

php ×1