regex - 如何重写现有的重写路径?
问题描述
我的 .htaccess 文件中有此代码,用于重定向访问www.example.com/inventory/anySKUnumber的用户:
RewriteEngine On
# Change URL to .../inventory/$row[number]
RewriteRule ^Inventory/([^/]*)$ /Inventory/vendors/php/LandingPage/DirectSKU.php?number=$1 [QSA,L,NC]
现在我还想,如果用户访问www.example.com/inventory他们会被重定向到主页,但我想在地址栏中保持相同的路径[不仅仅是重定向到它]。
尝试此操作时,我被重定向但地址栏中的路径为空:
RewriteEngine On
# Change URL to .../inventory/$row[number]
RewriteRule ^Inventory/([^/]*)$ /Inventory/vendors/php/LandingPage/DirectSKU.php?number=$1 [QSA,L,NC]
# Redirect to index but keep path
RewriteRule ^Inventory/?$ /$ [QSA,NC]
如何在保持路径 ( http://www.example.com/inventory ) 的同时重定向?
解决方案
在第一个重写规则中,使用了一个星号。星号可以匹配零个字符,这是不需要的。使用加号可以解决问题。这是完整的代码:
RewriteEngine On
RewriteBase /
# Change URL to .../Inventory/$row[number]
RewriteRule ^Inventory/([^/]+)$ /vendors/pages/Inventory/LandingPage/DirectSKU.php?number=$1 [QSA,L,NC]
# Redirect to index but keep paths
RewriteRule ^Inventory/?$ index.php [QSA,NC]
推荐阅读
- java - 多个 Appenders & Loggers 的 Log4j2 开销
- c# - 构建表达式根据数组的顺序进行排序
- laravel - 使用 Laravel 图像干预调整图像大小不会让我保存
- excel - excel vba错误91/编译错误
- javascript - javascript .toUpperCase 方法的效率是多少?
- office-js - Office.js 自定义属性的存在
- python - 带有随机 id 变量的 Pandas wide_to_long
- javascript - 控制 d3 折线图中的刻度间距
- javascript - 将数组中的每个元素与其他所有元素进行比较
- ruby-on-rails - 在函数参数中传递关系(续集)