首页 > 解决方案 > Trying to rewrite url in .htaccess but not changing

问题描述

I am trying to rewrite my URL http://localhost/jainvidhya/register.php?role=admin to http://localhost/jainvidhya/register/admin, but the following code doesn't work:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.localhost [NC]
RewriteRule ^(.*)$ http://localhost/jainvidhya/$1 [L,R=301]

RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^register/(.*)/$ register.php?role=$1&%1

I have also tried restarting my server and clearing browsing history

标签: php.htaccessmod-rewriteurl-rewriting

解决方案


因此,首先您可以删除RewriteBase /或将其设置为jainvidhya 子目录

RewriteBase /jainvidhya

此外,最后一个 RewriteRule 尝试匹配 URL 中的结尾 /(斜杠)符号,因此您可能希望像这样放置该选项:

RewriteRule ^register/(.*)/?$ register.php?role=$1&%1

或者更好地尝试指定一个正确的字母数字 rexexp,如下所示:

RewriteRule ^register/([^/w]+)/?$ register.php?role=$1&%1

推荐阅读