.htaccess 与 EasyPHP:RewriteRule 不起作用

Posted

技术标签:

【中文标题】.htaccess 与 EasyPHP:RewriteRule 不起作用【英文标题】:.htaccess with EasyPHP: RewriteRule not working 【发布时间】:2013-03-20 13:15:06 【问题描述】:

我一直在尝试在我的开发环境中启用 URL 重写。我使用 Easyphp 5.4.6。我正在尝试创建一个仅影响一个站点(别名)的简单重写规则(将 /about-us/ 重写为 about-us.php)。我已将 .htaccess 文件放在该页面的根文件夹中。我已经注意了这些事情: 1. httpd.conf 中加载了 mod_rewrite 模块 2. phpinfo() 列出加载模块中的 mod_rewrite 3.我的规则有效(在线测试) 4. .htaccess 存储在页面的根文件夹中 5.站点的文件夹在配置文件中定义为别名 6. 在该定义中,AllowOverride 设置为 All

你猜怎么着,RewriteRule 不起作用,我不断收到 404 错误。 知道是什么原因造成的吗?

这是来自 httpd.conf 的别名定义

Alias "/website" "C:/local/website"
<Directory "C:/local/website">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
Allow from 127.0.0.1
Deny from all
Require all granted

这是我的 .htaccess

RewriteEngine On
RewriteBase /
RewriteRule ([a-zA-Z0-9\-]+)/? $1.php

【问题讨论】:

两件事:1)您的问题目前没有说明您正在使用哪些网址进行测试。 2) 您是否尝试过设置重写日志 (httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritelog) 并查看您的规则是否受到影响? 【参考方案1】:

您使用的是“/website”别名,我认为您应该在本地 .htaccess 文件(即RewriteBase /website)中声明具有相同值的 RewriteBase。

【讨论】:

【参考方案2】:

我建议使用 EasyPHP 中的模块 'Virtual Hosts Manager'

【讨论】:

以上是关于.htaccess 与 EasyPHP:RewriteRule 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

[羊城杯2020]easyphp --- 伪协议的使用时机,---python上传.htaccess的利用 -- preg_match绕过

用于Wordpress多站点的htaccess

简单的htaccess base重写为子文件夹中的站点,链接与相对路径

使用 htaccess 重定向整个站点

Letsencrypt和CakePHP应用程序的Htaccess重写文件

.htaccess 新手问题使用 mod_rewrite