【发布时间】:2014-06-07 17:22:20
【问题描述】:
我正在研究 Apache 的重写规则,而不是使用 .htaccess,而是使用虚拟主机设置来编写它们。
这里我有两个问题:
我可以使用“RewriteRule blog_rss.xml blog_rss.php”但不能使用“RewriteRule ^blog_rss.xml$ blog_rss.php”,为什么?
即使第一个脚本正在运行,它也不会更改为我想要的 RSS 样式。我应该使用重写规则为其设置处理程序吗?
感谢您回答这个问题。
更新:这里是关于重写规则的脚本。
<Directory />
<IfModule mod_rewrite.c>
RewriteEngine On
ErrorDocument 404 /error/404.php
RewriteRule ^blog_rss\.xml$ blog_rss.php
</IfModule>
</Directory>
【问题讨论】:
-
^blog_rss.xml$是一个特定的匹配项,因为.htaccess位于您域的根文件夹中,它只会在 URL 为http://domain.com/blog_rss.xml时匹配,是这样吗?结果页面如何显示 RSS,您可以通过更改标题输出来修复 PHP 代码。 -
嗯,我用的是虚拟主机设置,不知道是不是和.htaccess的设置一样。那么这是否意味着 ^blog_rss\.xml$ 不适合 VS 设置?此外,所以我发现第二个问题只是使用 Chrome,但 Firefox 运行良好。
-
如果您直接在
virtualhost上使用它,那么可以。这是错误的,因为在virtualhost上它以/开头,所以它必须是^/blog_rss.xml$而不是你所拥有的。 -
我已尝试将其更改为 ^/blog_rss.xml$ 和 ^/blog_rss\.xml$ 但它们仍然无法正常工作...
-
好吧,在不进一步了解您还有哪些其他规则以及您尝试使用它的域和文件夹布局的情况下,很难说。
标签: apache mod-rewrite url-rewriting apache2 rewrite