gpt4 book ai didi

php - 简单的 mod_rewrite 问题

转载 作者:行者123 更新时间:2023-12-04 20:16:36 26 4
gpt4 key购买 nike

我有一个很奇怪的问题

我正在玩弄 .htaccess 并尝试将所有请求重定向到/test/文件夹的索引文件。

我的站点位于本地 htdocs 文件夹中的/test/文件夹中。当前不存在其他文件。

我的期望:当我访问任何 url 时,(例如 /test/category/one/)我应该被重定向到 /test/index.php

会发生什么我得到一个 404 Not Found

我的 .htaccess 看起来像这样:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /test/index.php?__route=$1 [L,QSA]

我试过设置 RewriteBase/test/

这已经很简单了,为什么它不起作用?

我在另一个文件夹中有一个 Wordpress 站点,它可以完美地使用自定义重写。

我什至将 Wordpress 的 .htaccess 内容复制到测试站点的内容,用/test/替换重写基础和最后一条规则。

Wordpress' .htaccess:(适用于同一服务器上的单独 WP 安装)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /test/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /test/index.php [L]
</IfModule>

# END WordPress

我已经为此苦苦挣扎了一段时间,并且在没有帮助的情况下阅读了很多 SO 文章。

我什至写了一个重写日志文件,现在当我浏览到测试站点时什么也没有显示,但是访问 Wordpress 站点时写了好几行。

我在 Win64 机器上运行 XAMPP。

任何帮助将不胜感激! =)

最佳答案

更新:此外,请确保正确设置 .htaccess 文件中的行结尾。 Apache 有时会阻塞任何不包含换行符 (\n) 字符的内容。

所以在我看来,您想(在某种程度上)模仿 WordPress 正在做的事情。以下是我在开发一些具有相同功能的软件时处理这种情况的方法:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /test
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [L]
RewriteRule ^.*$ /index.php [L]
</IfModule>

对于存在的文件(即 -f-d 测试通过),我们会原封不动地提供它们。否则,我们将传入请求重定向到 index.php。请注意,路径的 /test 部分不包含在 RewriteRule 中,因为 RewriteBase 设置在我们开始的地方。所以,在你的例子中,我认为它最终会是:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /test
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [L]
RewriteRule ^(.*)$ /index.php?__route=$1 [L,QSA]
</IfModule>

FWIW,我不是 .htaccess 专家。过去我只是发现这对我有用。

此外,如果您在共享主机(如 DreamHost)上,您可能需要设置适当的规则以允许默认错误文档。一些共享的 Web 主机为错误情况提供单个文件(failed_auth.html 是一个例子)。如果您没有过滤掉这种情况,您最终可能会得到 404。

关于php - 简单的 mod_rewrite 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11992571/

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