gpt4 book ai didi

.htaccess - 隐藏 php 扩展名,强制尾随斜杠 - 常见问题,总是一个蹩脚的答案。告诉我我是否做对了

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

我讨厌问这个问题,因为它已经被问了一百万次,但答案似乎从来都不令人满意,而且大多数线程似乎都没有得到公认的答案就被放弃了。

这正是我需要做的(由于业力低,恶意网址是故意的):
http://example.com/file.php重定向到 http://example.com/file/http://example.com/file还必须重定向到 http://example.com/file/http://example.com/asdfsadfhttp://examplecom/file/asdfasdf必须去404页面

这是我从这里和其他地方的帖子拼凑起来的 htaccess 魔法。它似乎有效(与该主题上的大多数废弃线程不同,那里总是有一些奇怪的行为)。

 RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php http://example.com/$1 [R=301,L]

就像我说的,据我所知,即使有子目录,这也能正常工作。如果我遗漏了什么,任何有知识的人都可以告诉我。可以改进或缩短吗?

对于它的值(value),我还删除了 www:
 RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

它似乎工作正常。它包含在其他部分之后。这是最好的顺序吗?

谢谢大家,我希望我们能得到一个好的、可靠的答案,因为有很多不好的答案。

最佳答案

哦,我有这个答案!
这个要进入 .htaccess 的小重写片段将从您在其 url 中指定的任何文件中删除扩展名。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteBase /
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://yourdomain.com/$1/ [L,R=301]

只需将其粘贴到根目录中 .htaccess 文件的底部即可。该文件是隐藏的,因此请确保在您的 ftp 中启用了“显示隐藏文件”。 ETA:最后 3 行应该在 yourcomain.com 上的所有文件中添加一个尾部斜杠 不要忘记正确替换 youdomain.com。

这将从您所有的 url 中删除 '.php' 到 php 文件! ^_^
希望我有所帮助

关于.htaccess - 隐藏 php 扩展名,强制尾随斜杠 - 常见问题,总是一个蹩脚的答案。告诉我我是否做对了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6259825/

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