【问题标题】:Getting Internal server error for RewriteRule -.htaccesss获取 RewriteRule -.htaccess 的内部服务器错误
【发布时间】:2015-04-19 15:02:57
【问题描述】:

我正在尝试为以下场景编写 RewriteRule

当我点击网址时:      localhost/ example

需要加载子文件夹(pages)中的example.php文件

文件夹结构:

- 页面
- example.php
- 样式
- 脚本
- 索引.php

我的.htaccess文件如下

RewriteEngine on
RewriteRule ^(.*)$ pages/$1.php

但我得到了

500 内部服务器错误

请任何人帮我解决这个问题。

【问题讨论】:

    标签: php regex apache .htaccess mod-rewrite


    【解决方案1】:

    您的重写规则可能是循环的。添加条件以防止这种情况发生:

    RewriteEngine On
    RewriteCond %{DOCUMENT_ROOT}/pages/$1.php -f
    RewriteRule ^(.*)$ /pages/$1.php [L]
    

    由于重写引擎循环直到 URI 停止更改,(.*) 匹配所有内容,包括 /pages/whatever。所以 URI 不断将 /pages/ 附加到 URI 的前面。

    【讨论】:

    • 您好,谢谢您的回答。它在服务器上工作正常。但是当我在 localhost 中尝试时,它会说 Not found.
    • 在本地主机上,您的文档根目录中是否有 htaccess 文件?如果不是,则需要更改规则以考虑不同的基础
    • www 文件夹中我有 2 个项目 project1project2 ....htaccess 文件在 项目2
    • 我明白了....在 %{DOCUMENT_ROOT}/ 旁边添加了 project2 ...成功了 ....非常感谢。
    猜你喜欢
    • 2014-01-01
    • 2015-09-30
    • 2016-06-16
    • 1970-01-01
    • 2012-09-04
    • 2023-03-05
    • 1970-01-01
    • 2014-10-31
    • 2016-07-16
    相关资源
    最近更新 更多