首页 > 解决方案 > htaccess url从请求查询重写到文件夹,并更改php名称

问题描述

如何在稍后在线托管的 localhost 上执行以下操作:

我有这个链接:

http://localhost/shops/shop.php?c=15

我想将其重写为http://localhost/shops/shop/15

htaccess is(放置在C:\wamp\www\shops folder):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?RECIPES/(.*?)/?$ /single-product-details.php?=$1 [L]
RewriteRule ^/?SHOP/(.*?)/?$ /shop.php?=$1 [L]

标签: .htaccessredirectmod-rewriteurl-rewritingfriendly-url

解决方案


使用您显示的示例,请尝试以下规则。将您的 htaccess 文件与商店文件夹(不在其中)一起放置。

请确保在测试您的 URL 之前清除您的浏览器缓存。

RewriteEngine ON
RewriteBase /shops/
##External redirect to friendly url.
RewriteCond %{THE_REQUEST} \s/shops/(shop)\.php\?c=(\d+)\s [NC]
RewriteRule ^ /%1/%2? [R=301,L]
##Internal rewrite to actual url/files.
RewriteRule ^([^/]*)/(.*)/? $1.php?c=$2 [QSA,L]

推荐阅读