【问题标题】:Building a simple .htaccess hierachy rewrite构建一个简单的 .htaccess 层次结构重写
【发布时间】:2013-02-14 17:22:11
【问题描述】:

我在这里尝试做一些相当简单的事情,但无法通过在这里或谷歌搜索找到解决方案 - 一定是我不知道要搜索什么。

基本上,我正在尝试使用我的 .htaccess 文件执行此操作:

www.mydomain.com/$ 节目 www.mydomain.com/$.php

www.mydomain.com/products/$ 节目 www.mydomain.com/products/$.php

另外,您最喜欢学习如何编写 .htaccess 文件的资源是什么?我知道我的问题很简单,我很想从现在开始自己做这样的事情。

非常感谢

【问题讨论】:

    标签: .htaccess rewrite subdirectory


    【解决方案1】:

    如果我理解正确,您只想在每个请求中添加一个“.php”。你可以使用

    RewriteRule ^(.*)$ $1.php
    

    为了实现这一点,即使用户请求 www.example.com/foo.php,它也会添加一个“.php”,所以你可能想要使用

    RewriteRule ^(.*)(\.php)?$ $1.php
    

    编辑:如果您想允许访问现有文件,例如css 或 JavaScript 文件或图像,使用 RewriteCond:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^(.*)$ $1.php [END]
    

    【讨论】:

    • 谢谢,但它现在给了我一个内部服务器错误:(
    • 对不起,你必须使用RewriteRule ^(.*?)(\.php)?$ $1.php [END] [END] 标志告诉重写引擎在这条规则之后停止并且不再处理请求。 ? 是因为 .* 会“吃掉”整个字符串,包括“.php”。
    • 我仍然遇到同样的问题。我认为这可能与我的 .htaccess 文件的其他内容有关,所以我尝试删除所有内容,只放你给我的代码。仍然是 500 内部服务器错误
    • 你必须在规则前的那一行写上 RewriteEngine On 。还要检查 httpd.conf 中是否启用了重写模块以及是否启用了覆盖。
    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2010-10-03
    相关资源
    最近更新 更多