Mod重写2部分问题
我想知道如何使用mod_rewrite重写下面的URL?有没有一个在线教程,解释mod_rewrite傻瓜?Mod重写2部分问题
如何重写此URL。
http://www.example.com/sitemap.php
到
http://www.example.com/sitemap.xml
我建议:
RewriteRule ^/sitemap.php$ /sitemap.xml
至于教程,你尝试过官方Apache mod_rewrite Introduction? 接下来,在URL Rewriting Guide和Advanced URL Rewriting Guide中有很多有用的例子......它们可能很复杂,但它确实有许多常见的重写任务的例子。
RewriteRule没有工作:(谢谢教程,虽然 – HELP 2010-12-16 06:34:44
对此有几个选项,具体取决于您希望如何工作。
最简单的方法来重定向一个文件到另一个是简单地使用Redirect
指令:
Redirect /sitemap.php http://www.example.com/sitemap.xml
默认将做302重定向,但你可以通过添加状态代码将其更改为301作为第一个参数,即:
Redirect 301 /sitemap.php http://www.example.com/sitemap.xml
在这两种情况下,这将导致往返返回给浏览器,这样地址栏会改变以显示新的文件名sitemap.xml
。如果你不希望出现这种情况,你可以使用RewriteRule
指令:
RewriteRule ^sitemap.php$ /sitemap.xml [L]
注意,这是你将如何写从所谓的“按目录中,”这只是意味着该规则是规则从.htaccess
文件或<Directory>
块中写入。如果您是从主配置中编写它,那么您需要一个前导斜杠(即^/sitemap.php$
)来表明规则要与文档根匹配。
这不起作用 – HELP 2010-12-16 08:46:00
Dupe of http://stackoverflow.com/q/4457835/52721。 @sleep - 你刚刚问过这个问题。继续努力吧,我们不会在这里遇到麻烦。 – Robert 2010-12-16 08:42:03
@Robert:我投票结束,但这篇文章自那时以来一直受到关注,所以我将其标记为mod评论,并建议将这两个问题合并。 – AgentConundrum 2010-12-16 09:27:04
够公平的。我认为,合并是真的要走的路。 – Robert 2010-12-16 09:28:09