在.htaccess中隐藏id参数[重复]

7tofc5zh  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(101)

此问题已在此处有答案

.htaccess rewrite "/book.php?id=1234" to "/book/1234"(2个答案)
昨天关门了。
我有下面的代码.htaccess

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^profile/

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_FILENAME}.php [L]

##hide id parameter
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9_])/([^/]*)$ /$1.php?id=$2 [L]

2我的函数工作正常,隐藏ID函数却不工作,它应该做以下事情:post.php?id=7变成了post/7。
我对. htaccess不是很有经验。事实上我对它不熟悉,所以我想知道我将如何解决上述问题。这也不能影响我的POST和GET请求,我使用,因为我有一吨的 AJAX 请求在整个网站的每一个页面。

lstz6jyr

lstz6jyr1#

你已经接近了:

##hide id parameter
RewriteRule ^post/(\d+)$ post.php?id=$1 [L]

^post/(\d+)$模式匹配以“post/”开头的URL,后面跟着一个或多个数字。(\d+)捕获数字并将其分配给$1反向引用。目标post.php?id=$1将URL重写为原始表单,但将捕获的数字作为“id”参数。[L]标志指示这是要处理的最后一个规则。

相关问题