我试图重写我的网站的URL为PHP页面我有不同的条件
first example.com/view.php?id=1
在这里我需要从URL隐藏ID我需要它像这样
example.com/view/1
第二,对于某些页面,我有不同变量,如下面的示例所示
example.com/view/book.php?id=1&user=33333&booked=1
我需要重写这个例子的链接
example.com/view/book/1/33333/1
下面是我在.htaccess页面中所做操作
# Remove .php file extension on requests
RewriteRule ^(.+).php$ /$1 [R,L]
RewriteRule ^(view/booked)/([0-9]*)$ $1.php?id=$2 [END]
# Append .php extension for other requests
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*?)/?$ /$1.php [END]
RewriteRule ^(view/book)/([0-9]*)/([0-9]*)/([0-9]*)$ $1.php?id=$2&user=$3&booked=$4 [END]
例如,它运行良好,没有任何问题,对于example.com/view/booked/1也是如此。
第二个例子的唯一问题是example.com/view/book.php?id=1&user=33333&booked=1我需要隐藏变量
2条答案
按热度按时间yquaqz181#
请尝试使用显示的示例遵循以下.htaccess规则。
请确保:
view
文件夹和view.php
位于同一根文件夹中。hxzsmxv22#
我建议你保持事情的清晰和精确。这可能是你正在寻找的:
首先使用
R=302
temporary 重定向可能是有意义的。只有当一切都按预期运行时,才将其更改为R=301
permanent 重定向。这可以防止客户端出现令人讨厌的缓存问题。此外,您总是希望使用一个新的匿名浏览器窗口进行测试。执行这些规则的最佳位置是中央http服务器的主机配置。如果您无法访问该配置,可以使用 * 分布式 * 配置文件(.htaccess),* 如果您在http服务器中启用了对这些文件的考虑 * ...如果该文件位于http主机的
DOCUMENT_ROOT
文件夹中,上述规则同样适用。