如何使用.htaccess隐藏网页名称后面的所有内容

Mad*_*sen 3 php url .htaccess mod-rewrite get

当我进入我的网站并浏览其他网站时,我得到的参数更多:等等.php?p = pagename&id = 1

我想在.dk之后隐藏一切

我试过了:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ index.php?p=$1 [L,QSA]
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?p=$1 [L,QSA]

RewriteRule ^/index.php$ http://www.madsweb.dk/ [R,NC,L]
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.

谁能帮我吗?

Fab*_*ler 5

RewriteRule ^/index.php $ http://www.madsweb.dk/ [R,NC,L]

重写以相反的方式工作.您不会重写用户在其地址栏中看到的内容,而是将请求重写为另一个请求(如重定向,但在服务器上透明地处理).

这也是你尝试做的事情不可能的原因.

如果您喜欢90年代并且不关心可用性,则可以使用框架.

但是开玩笑说,最好建立在这个已经很好的规则上:

RewriteRule ^([a-zA-Z0-9] +)$ index.php?p = $ 1 [L,QSA]

并获取附加信息(id在本例中)到模式中.例:

RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?p=$1 [L,QSA]
RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)$ index.php?p=$1&id=$2 [L,QSA]
Run Code Online (Sandbox Code Playgroud)

或更一般(但仍然只有一个参数):

RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?p=$1 [L,QSA]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([0-9]+)$ index.php?p=$1&$2=$3 [L,QSA]
Run Code Online (Sandbox Code Playgroud)