.htaccess 重定向无需更改 URL 在本地主机中工作,但在服务器中不起作用


.htaccess redirect without change url working in localhost but not working in server

以下是我在.htaccess文件中的代码:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /site
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^category/.*?/cat_('d+)$ http://www.domainname.com/site/viewproducts.php?catid=$1 [NC,L]

问题是当我访问时

http://www.domainname.com/site/category/Food_Items/cat_<passed_id>

地址栏更改为

http://www.domainname.com/site/viewproducts.php?catid=<passed_id>

它只是在本地主机中正常工作而不更改地址栏,但在服务器中它可以工作,但地址栏已更改。我的 Web 服务器在 unix 中运行,本地主机在窗口中运行。

我找不到答案。请有人帮助解决此问题。

您可以尝试按如下方式更改RewriteRule

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /site
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f    
RewriteRule ^category/.*?/cat_('d+)$ viewproducts.php?catid=$1 [NC,L]