我试图获取URL中的最后一个目录名,并将其作为参数发送到子文件夹index.php。
e.g.
mydomain.com/mysubfolder/hi
to
mydomain.com/mysubfolder/?p=hi
.htaccess文件中的下一个代码重定向到index.php,但不更改URL,但参数不会被发送。
RewriteEngine on
RewriteRule ^([^/]+)/?$ index.php?p=$1 [L]
注意:.htaccess在“mysubfolder”中,而不是在根目录中。
我阅读了别人的帖子,但没有一个有效。
你知道为什么以及如何解决它吗?谢谢
编辑:
问题是,我试图在index.php文件中使用JavaScript获取参数:
//Get URL Params
const queryString = window.location.search
const urlParams = new URLSearchParams(queryString)
const URL_p = urlParams.get('p')
我不明白为什么JS不能捕获.htaccess参数($1 $2等),但是是的是从{QUERY_STRING} .htaccess获取参数
如果我用PHP请求获取参数,它就能正常工作:
<?php echo $_REQUEST[p] ; ?>
2条答案
按热度按时间yc0p9oo01#
要包含子文件夹,您需要有两个变量的regex
^(.*?)
-将在变量$1
中包含第一个直接子文件夹/(.*?)$
-子文件夹之后的任何内容将在变量$2
中qpgpyjmq2#
将RegEx更改为仅匹配URL的第二部分,而不是整个URL:
.htaccess tester