.htaccess 重定向现有文件夹的 URL

.htaccess 重定向现有文件夹的 URL

我正在开发的软件使用了丑陋的 URL。为了让用户更轻松地共享项目(这是一个项目管理包),我想进行重定向。它应该重定向projectadmin.dev/project/1234到其他 URL。我可以使用他们的 web.config 文件在 ISS 上实现这一点,但 Apache 让我很头疼。

为了演示目的,我缩短了当前的 .htaccess 文件,但仍然出现问题:

RewriteEngine On
RewriteRule ^.*project/([0-9]+)$ RandomOtherPage.php  

当我访问该 URL 时,projectadmin.dev/project/123它给出了 403(禁止)错误。我认为这是因为该文件夹project存在于我的项目中。当我将 .htaccess 文件更改为:

RewriteEngine On
RewriteRule ^.*projects/([0-9]+)$ RandomOtherPage.php 

并且它将projectadmin.dev/projects/123按照我预期的那样工作。

我的问题:我如何忽略项目文件夹存在的事实但仍然可以访问其中的文件(例如projectadmin.dev/projects/image.jpg应该仍然有效)并具有带有数字的工作重定向?

答案1

尝试禁用MutliViews。在文件顶部.htaccess

Options -MultiViews

除非子目录.htaccess中有一个文件/project,其中也包含 mod_rewrite 指令,否则无论该文件夹是否存在都不应该有问题。

相关内容