【发布时间】:2015-09-06 13:47:04
【问题描述】:
我在 htaccess 中使用此代码将任何目录剥离到 index.php
RewriteRule ^.(index.+?\.php)$ /$1 [L,NC,R=301]
例如
http://www.example.com/toys/index.php
http://www.example.com/battery/upload/index.php
http://www.example.com/xyz/photos/index.php
正在更改将所有这些重定向到
http://www.example.com/index.php
现在,当我更改服务器时 - 此代码导致 404 页 是否有任何替代修改可以建议重新修改代码,以便在域之后和 index.php 之前剥离任何行或目录
【问题讨论】:
-
检查您的虚拟主机并确保 AllowOverride 已打开(从而允许处理您的 .htaccess 文件)。检查 .htaccess 文件是否正在被解析的一种简单方法是在其中写入大量废话。如果您没有收到 500 错误,则说明它没有被使用。还要检查重写模块是否已安装并启用。
-
你好 - 检查,重写模式已启用。其他 htaccess 代码字符串也可以使用,除了问题中提到的那个
-
你不应该改用
RewriteRule ^.+?(index\.php)$ /$1 [L,NC,R=301]吗? -
感谢 Anubhava,仔细观察后发现该规则也适用于后端管理员部分 - 由于未找到哪个组件 - 发生 404 和 500 错误。如何创建管理员文件夹不会因相同而受到影响的异常。
标签: php regex .htaccess mod-rewrite http-status-code-301