【问题标题】:.htaccess file not working on my project.htaccess 文件不适用于我的项目
【发布时间】:2015-12-07 23:23:47
【问题描述】:

我是 PHP 新手,我正在尝试为我的网站创建一个 .htaccess 文件。
我已经按照这个链接:
mod_rewrite-windows-apache-url-rewriting 更改了我的 C:\xampp\apache\conf\ httpd.conf 文件

这是我的 .htaccess 文件并保存在 test 文件夹下。

RewriteEngine On
RewriteRule localhost/admin/^([a-zA-Z0-9]+)$ localhost/test/application/admin/add_department.php?action=edit&page=$1
RewriteRule localhost/admin/^([a-zA-Z0-9]+)/$ localhost/test/application/admin/add_department.php?action=edit&page=$1

这是我的原始网址
localhost/test/application/admin/add_department.php?action=edit&department_id=11

我希望它变成
localhost/admin/add_department/11

但它不起作用,网址栏仍然显示我的原始网址
有需要的请告诉我,谢谢~~

【问题讨论】:

    标签: php .htaccess url mod-rewrite


    【解决方案1】:

    您无法使用RewriteRule 匹配localhost

    您还应该将 .htaccess 放在test/ 文件夹上方,即您的网站根目录。

    你有这样的规则吗:

    RewriteEngine On
    RewriteBase /
    
    RewriteRule ^(admin)/([\w-]+)/([\w-]+)/?$ test/application/$1/$2.php?action=edit&page=$3 [L,QSA,NC]
    

    还要注意使用/?$ 作为可选的斜杠。这将消除对 2 条规则的需要。

    这将让您在浏览器中使用localhost/admin/add_department/11 URL。

    【讨论】:

    • 嗨,这是我的文件目录:htdocs/test/。我把我的 .htaccess 放在 htdocs 下。但是当我在浏览器中使用localhost/admin/add_department/11 URL 时,页面显示找不到对象!我错过了什么吗?
    • 是的,http://localhost/test/application/admin/add_department.php?action=edit&departme‌​nt_id=11 URL 工作正常,我已将我的 C:\xampp\htdocs\.htaccess 文件更新为 RewriteEngine On RewriteBase / RewriteRule ^(admin)/([a-z0-9]+)/([a-z0-9]+)/?$ test/application/$1/$2.php?action=edit&department_id=$3 [L,QSA,NC]
    • 嗨,我遇到了一个问题,即当 url barhttp://localhost/admin/add_department/11 时,我单击了菜单栏下的一个按钮,该按钮将指向 general_setting。 php url 将是 http://localhost/admin/add_department/general_setting 并且它不起作用,我知道我何时使用此方法 ../general_setting 会工作。但问题是 我的菜单栏 包含其他按钮,如果我全部使用 ../,当 url 为 http://localhost/admin/general_setting 然后我点击另一个按钮将变为http://localhost/dashboard
    猜你喜欢
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 2016-02-08
    • 2012-11-08
    • 2021-02-23
    相关资源
    最近更新 更多