【问题标题】:How to make Apache rewrite blog URLs?如何让 Apache 重写博客 URL?
【发布时间】:2014-12-05 18:53:25
【问题描述】:

我已经安装了 WAMP,创建了一个别名,并在该文件夹中放入了一个“.htaccess”文件。我的目标是让诸如“foo.com/blog/bar-baz”之类的 URL 在内部调用“display.php?name=bar-baz”。我尝试了以下各种方法:

RewriteRule ^blog/(.+)$ display.php?$1

但是,这会给出“在此服务器上找不到请求的 URL /Users/.../public/display.php”。玩弄我能够让它工作:

RewriteRule ^blog.php$ /personal/display.php

非常感谢您的建议。

【问题讨论】:

    标签: apache .htaccess wamp


    【解决方案1】:

    您可以从 root .htaccess 中尝试此规则:

    RewriteEngine On
    
    RewriteRule ^blog/(.+)$ /personal/display.php?name=$1 [L,QSA,NC]
    

    【讨论】:

    • 谢谢,这行得通。另一个相关问题:我是否有可能摆脱“个人”字符串以便“.htaccess”可以移植?
    • 好吧,如果您将display.php 保留在/personal/ 目录中,那么您将不得不在重写规则中使用它。只有将display.php 移动到DirectoryRoot 的上一级才能删除/personal/
    • 我不能这样做,因为“个人”只是一个别名。在内部它指向“c:\Users\...\Desktop\web\public”。
    • 不管怎样,重写规则只需要使用正确的路径路由到display.php
    • 我花了一些时间查看是否可以避免“硬编码”“.htaccess”文件中的别名,但没有找到。我发现唯一比 hack 感觉更好的是“RewriteBase”指令。不幸的是,我需要使 .htaccess 文件可以被源代码控制系统忽略,并且只有一个“.htaccess.sample”,所以物理上复制并更改别名。
    猜你喜欢
    • 2018-10-30
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    相关资源
    最近更新 更多