我试图在我的.htaccess文件中包含一个条件,以将请求重写到REST端点,该请求在对新端点的位置执行一些更新后将不再存在。现有请求看起来像这样:
https://www.example.com/applications/interface/?info&key=xxx&indentifier=xxx
我希望新请求在社区文件夹中的不同位置具有相似的结构:
https://www.example.com/community/applications/interface/?info&key=xxx&indentifier=xxx
任何帮助将不胜感激。我现有的.htaccess如下所示:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(js|css|jpeg|jpg|gif|png|ico|map)(\?|$) /404error.php [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
答案 0 :(得分:0)
您是否有理由不能将旧请求重定向到新请求? URI是否需要在内部重写?
如果重定向足够好,则可以执行以下操作(请注意,我正在使用mod_rewrite和 not mod_alias的Redirect
指令,这是因为它们最终都变得应用于同一请求,并且可能与您现有的路由规则冲突)
RewriteRule ^applications/interface/$ /community/applications/interface/ [L,R]
并且您希望在RewriteBase
下使用该名称。这将接收看起来像/applications/interface/
的请求,并在不影响所有查询字符串参数的情况下将它们重定向到/community/applications/interface/
。正则表达式将只与该URI具体匹配,并与尾随/
匹配。
如果需要进行某种内部重写,建议您在框架内执行此操作,而不要尝试在htaccess文件中使用mod_rewrite。您已经设置好了,因此每个请求都被路由到index.php
,并且由该代码确定需要去哪里。