我已尝试过google和堆栈溢出的许多查询/答案,但找不到适合我的。
我有一个文件users.php,当我发送users.php?user = username时,我希望它是users / user / username。我已经在.htaccess中删除了php扩展名。
最好的方法是什么?此外,帮助正确的文件结构将是有帮助的。
编辑:这是我到目前为止所拥有的:
Options +FollowSymlinks -MultiViews
RewriteEngine on
# to make `/path/index.php` to /path/
RewriteCond %{THE_REQUEST} ^GET\s(.*/)index\.php [NC]
RewriteRule . %1 [NE,R=301,L]
RewriteCond %{THE_REQUEST} ^GET\s.+\.php [NC]
RewriteRule ^(.+)\.php$ /$1 [NE,R=301,L,NC]
RewriteCond %{REQUEST_URI} !\.php$ [NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule . %{REQUEST_URI}.php [L]
答案 0 :(得分:0)
试试这个htaccess代码
RewriteEngine On
RewriteRule ^users/user/(.*)/$ users.php?user=$1 [L]
答案 1 :(得分:0)
RewriteEngine On
RewriteRule ^users/user/$ users.php?user=$1 [NC,L]
答案 2 :(得分:0)
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^users/user/([a-z0-9-_]+) /users.php?user=$1 [NC]
使用规则最末端的[NC]
标志以不区分大小写的方式匹配它。这意味着,规则不关心字母是大写还是小写。
现在,如果包含 /users.php 的文件夹的权限为 / html ,请尝试尝试:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^users/user/([a-z0-9-_]+) /html/users.php?user=$1 [NC]
只需将“html”更改为包含 users.php 的文件夹的名称。
好的,让我们检查一下这条规则:
RewriteRule ^users/user/([a-z0-9-_]+) /beta/users.php?user=$1 [NC]
但请始终不要忘记RewriteEngine on
并评论正在发生的事情。您必须检查的URL是我们尝试重新映射的不存在的URL。 (例如:domain.com/users/user/name最后没有斜杠。)