首页 > 解决方案 > 如何重写现有的重写路径?

问题描述

我的 .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 ) 的同时重定向?

标签: regex.htaccessredirectmod-rewritedocument-root

解决方案


在第一个重写规则中,使用了一个星号。星号可以匹配零个字符,这是不需要的。使用加号可以解决问题。这是完整的代码:

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]

推荐阅读