我正在开发的软件使用了丑陋的 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 指令,否则无论该文件夹是否存在都不应该有问题。