资深程序员
这是我第一次使用htaccess进行重写,但我找不到解决问题的方法。
我创建了一个简单的重写规则,以使用php GET变量将用户重定向到更干净的网址。
这是代码
RewriteEngine on
RewriteRule ^page/([0-9a-zA-Z]+)/([0-9a-zA-Z]+) index.php?dir=$1&admin=$2 [NC,L]
ErrorDocument 404 /page/404
目前,除非同时设置了两个参数,否则本示例将不起作用。如果我想参观 mysite.com/page/dashboard 然后将我重定向到404,但是如果添加 mysite.com/page/dashboard/random 然后我得到我的仪表板
如果仅设置了dir并且同时设置了dir和
,则我需要它同时起作用我还可以删除/ page /目录,而不会弄乱我的样式,脚本等吗?每当我删除/ page /并将其保留为mysite.com/时,我的样式和脚本就会停止工作,因为我想这是希望这些参数能够得到满足。
我知道这听起来可能有些混乱,但是希望有人可以帮助我完成这项工作。
答案 0 :(得分:0)
所以我解决了这个问题,似乎是因为我没有检查url末尾是否有斜杠,所以我添加了这个问题。
RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)$ index.php?dir=$1
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index.php?dir=$1&admin=$2
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?dir=$1&admin=$2
ErrorDocument 404 /page/404
请注意重复的条目。
我还在末尾添加了$符号,以便apache不会再有其他任何重定向或参数。