htaccess 正在运行,但不会取代 url

htaccess is working but does not replace the url

我正在尝试修改 URL 中的子域名,使其看起来更漂亮。我当前的 URL 看起来像:

www.mystore.com/productInfo.php?cPath=11_11&productID=222

所以,我想通过重写 main 中的 .htaccess 代码使其变得更好:

RewriteEngine On    
RewriteRule ^productInfo/([0-9_-]+)/([0-9_-]+) productInfo.php?cPath=&productID= [NC,L]

当我 运行 并通过在 URL 中键入 www.mystore.com/productInfo/11_11/222 在 URL 上测试它时,效果很好。然而,当这个页面被不同的页面重定向或者是 'refreshed' 与自我重定向 a href= link(其中 link 被写在 php 中以前的程序员),上面的旧 link 在 URL 中仍然可见,而不是新的。

我仍然是初学者,我怀疑我可能需要为此更改 cPanel/Apache(我认为)中的某些内容,但目前,我仍然无法访问 cPanel 控件。在 .htaccess 文件中是否有我可能遗漏的内容,或者我确实需要 cPanel 控件或任何其他原因?

感谢任何帮助。抱歉,我找不到类似的问题。

您可以使用以下内容:

RewriteEngine On
RewriteBase /

#redirect /productInfo.php?cPath=foo&productID=bar to /productInfo/foo/bar
RewriteCond %{THE_REQUEST} /productInfo\.php\?cPath=([0-9_-]+)&productID=([0-9_-]) [NC]
RewriteRule ^ productInfo/%1/%2? [L,R=301]
#rewrite new URL to the old one
RewriteRule ^productInfo/([0-9_-]+)/([0-9_-]+) productInfo.php?cPath=&productID= [NC,L]