我想使用apache来使用具有特定url的不同页面的代码

问题描述 投票:0回答:1

我现在已经在研究这个问题一段时间了。我是 Apache 的新人,所以我不知道自己在做什么哈哈。

但基本上我试图检测何时输入不存在的网址,然后根据特定网址输出一个index.php 文件。这就是我目前所拥有的

RewriteCond %{HTTP_HOST} ^(twittyr.com)$
RewriteRule ^/?twyyt/(.*) /index.php

假网址如下

https://www.twittyr.com/twyyt/6543

输入此网址后,我希望网站使用 twittyr.com/index.php 中的代码。

我做错了什么?

apache mod-rewrite
1个回答
0
投票
RewriteCond %{HTTP_HOST} ^(example.com)$
RewriteRule ^/?twyyt/(.*) /index.php

假网址如下

https://www.example.com/twyyt/6543

您请求

www.example.com
,但仅在
条件
example.com指令)中检查
RewriteCond
,因此该规则永远不会触发。

否则这里并没有什么特别“错误”的地方。然而...

  • 除非您在同一位置托管多个域,否则您不需要显式检查请求的主机名。 (您当然不需要使用括号中的子模式来捕获它。)

  • 同样,您不需要捕获

    /twyyt/
    之后的URL路径。 (你没有使用它。)

  • 您缺少

    L
    (或
    END
    )标志,因此处理将继续通过文件。 (如果您有任何遵循的指令,这一点很重要。)

因此,以下内容可能就足够了:

RewriteEngine On

RewriteRule ^twyyt/ index.php [L]

.htaccess
中,您不需要在
/?
模式
上添加 RewriteRule 前缀。同样,您不需要在 substitution 字符串上使用斜杠前缀(重写为文件路径,而不是 URL 路径)。

© www.soinside.com 2019 - 2024. All rights reserved.