我现在已经在研究这个问题一段时间了。我是 Apache 的新人,所以我不知道自己在做什么哈哈。
但基本上我试图检测何时输入不存在的网址,然后根据特定网址输出一个index.php 文件。这就是我目前所拥有的
RewriteCond %{HTTP_HOST} ^(twittyr.com)$
RewriteRule ^/?twyyt/(.*) /index.php
假网址如下
https://www.twittyr.com/twyyt/6543
输入此网址后,我希望网站使用 twittyr.com/index.php 中的代码。
我做错了什么?
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 路径)。