无法使.htaccess重写规则正常工作

无法使.htaccess重写规则正常工作,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,我一直在努力使用.htaccess使URL重写规则正常工作。Mod_rewrite已启用,我已成功获得301重定向到工作状态(从/beta到/beta/),因此我知道.htaccess可以工作 基本上,我正试图让/Beta/Page.php?id=Page&tab=services&tabid=tab1变成/Page/services(如果tabid不会破坏网站,最好不要删除它) 我目前使用的代码是: Options +FollowSymLinks RewriteEngine on Rewrit

我一直在努力使用.htaccess使URL重写规则正常工作。Mod_rewrite已启用,我已成功获得301重定向到工作状态(从/beta到/beta/),因此我知道.htaccess可以工作

基本上,我正试图让/Beta/Page.php?id=Page&tab=services&tabid=tab1变成/Page/services(如果tabid不会破坏网站,最好不要删除它)

我目前使用的代码是:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^/Beta/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ /Beta/Page.php?id=$1&tab=$2&tabid=$3

redirect 301 /beta http://www.example.com/Beta/

任何帮助都将不胜感激。

删除前导斜杠:

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(Beta)/[^.]+\.php\?id=([^&]+)&tab=([^\s&]*)&tabid=([^\s&]+) [NC]
RewriteRule ^ /%1/%2/%3/%4? [R=302,L]

RewriteRule ^Beta/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ /Beta/Page.php?id=$1&tab=$2&tabid=$3 [L,QSA]
这将从外部重定向:

/Beta/Page.php?id=Page&tab=services&tabid=tab1

/Beta/page/services/tab1

并在内部重写相同的URI


另外,
.htaccess
是根据目录指令进行的,Apache从
RewriteRule
URI模式中删除当前目录路径(因此是前导斜杠)。

感谢您的反馈。不过,恐怕还是没有任何效果。我仍然得到了您期望的结果,而不是:
http://www.example.com/Beta/Page.php?id=page&tab=services&tabid=tab1
?(尽管我不希望有最后一个变量('tabid'))如果可能的话,虽然我不确定这是否会弄乱页面哦,好的。如果去掉
tabid
,那么将在
/Beta/Page中得到空的tabid。php
会起作用吗?它正在更改URL,但我得到一个404错误。我得到了。我还有一些URL不包含变量3(tabid),还有一些只包含变量1(id).我需要为这些写不同的规则吗?