我的重写规则有问题。我有一些带有如下变量的网址:localhost/mysite/user.php?u=username
。我想将它们转换为:localhost/mysite/user/username/
这就是我尝试过的
RewriteRule ^user/([A-Za-z0-9-]+)/?$ /mysite/user.php?u=$1 [NC,L]
# Handle user page requests
但它不起作用:(
/mysite/user.php
在htdocs文件夹中(因为我在本地环境中)
如果以某种方式打开localhost/user.php?u=username
这样的网址,它应该重定向或更改为localhost/user/username/
,这可能吗?
答案 0 :(得分:1)
您可以在/mysite/.htaccess
文件中使用此代码:
Options -MultiViews
RewriteEngine On
RewriteBase /mysite/
RewriteCond %{THE_REQUEST} /user\.php\?u=([^\s&]+) [NC]
RewriteRule ^ user/%1/? [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{THE_REQUEST} \s/+(.*?)[^/][?\s]
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301]
RewriteRule ^user/([^/.]+)/$ user.php?u=$1 [L,QSA,NC]