试着再次问我的问题,并尽我所能解释它。如何在不重定向本地主机的情况下重写htaccess中的url?
我在windows 10上运行WAMP。Apache版本2.4.18。我的项目位于www
文件夹中,名称为hoidja.ee
。 mod_rewrite
已启用,AllowOverride
设置为全部。
在该文件夹中我有.htaccess
文件,我试图完成重写而不重定向,它根本不起作用。我知道.htaccess
文件正在工作,因为我可以将index.php
改写为/home/
例如,它工作得很好。
我有一个包含所有用户列表的页面。您可以点击用户,它会带你到一个网址:
http://localhost/Hoidja.ee/hoidja.php?user_id=94&username=John
如何,我想这表明的是
http://localhost/Hoidja.ee/user/John
没有任何重定向。
我曾尝试:
#tried first with only user_id
RewriteCond %{QUERY_STRING} ^user_id=([A-Za-z0-9-]+)$
RewriteRule ^hoidja\.php$ /user/%1? [L]
这给了我404 /用户/ 94不存在。
RewriteRule ^user/([0-9]+)/([A-Za-z0-9-]+)/?$ hoidja.php?user_id=$1&username=$2 [QSA]
这不会在视觉上做任何事情。如果我手动输入http://localhost/Hoidja.ee/user/94/John
,它将进入该页面并显示用户数据,但如果输入原始URL,则不会重写它。我也使用<base>
。
我尝试了所有可能的方法,但似乎没有任何工作。我怎样才能完成网址重写?
使用_both_,一个用户ID和用户名没有什么意义,它只是使事情更加复杂和暧昧... – arkascha
@arkascha这是真的。我正在使用user_id从数据库中提取数据,但我想在url中显示用户名 – raqulka
好吧,没有任何反对显示名称(为什么)。但是在重写过程中,您不必重写它或考虑它,是吗? – arkascha