【问题标题】:Redirecting admin/??? to admin.php/??? with .htaccess重定向管理员/???到 admin.php/???使用 .htaccess
【发布时间】:2012-07-28 17:12:25
【问题描述】:

这是我目前的 htaccess 文件:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /blog/

ErrorDocument 404 /blog/404.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)\.html$ post.php/$1.html

RewriteRule ^index$ index.php
RewriteRule ^archives$ archives.php
RewriteRule ^about$ about.php
RewriteRule ^search$ search.php

RewriteRule ^feed$ feed.php

目前如果我转到domain.com/blog/*.html,它正在(在后台)重定向到domain.com/blog/post.php/*

我几乎想复制这个,但我不确定所有这些正则表达式的东西。

我也希望能够转到 domain.com/blog/admin/* 并让它(在后台)重定向到 domain.com/blog/admin.php?p=*

如果你们能帮助我,我将不胜感激!

谢谢

【问题讨论】:

    标签: php .htaccess url mod-rewrite rewrite


    【解决方案1】:

    类似:

    RewriteRule ^/?admin/(.*)$ admin.php?p=$1&%{QUERY_STRING} [L,NC]
    

    会成功的。

    这很快就完成了,它没有经过测试,但它给了你想法。你把这个放在上面:

    RewriteRule ^(.*)\.html$ post.php/$1.html
    

    编辑:取出 rewritecond,因为我刚刚意识到它没用

    编辑:也添加了查询字符串,因为您现在实际上正在转换 _GET。

    【讨论】:

    • 干杯老兄!我不能为我的生活,弄清楚这一点!这正是我想要的! :D
    【解决方案2】:

    在 .htaccess 的第一行添加多视图:

    Options FollowSymLinks MultiViews
    

    然后,重新启动 apache。它应该将 admin 指向 admin.php。

    注意:同一目录下不能有多个同名不同扩展名的文件。

    http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html

    【讨论】:

    • 如果他在那个目录中有一个admin.html 页面怎么办?他不是通过 php 请求的,因为 Apache 无法知道。
    • 他为什么会有一个admin.php和admin.html文件在同一个目录下?
    • PHP 后端和视图。逻辑和表示分离,分离不好但仍然分离。
    • 我的意思是我们也可以使用 admin.png。同样的概念同样的问题
    • 希望 OP 没有做这样的事情。我敢打赌他有图像、视图、模型、控制器等目录。如果没有,他有比担心内容谈判更大的鱼要炒。
    猜你喜欢
    • 2014-11-04
    • 2012-06-22
    • 2011-12-25
    • 2021-11-20
    • 1970-01-01
    • 2013-08-26
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多