3

当我进入我的站点和浏览其他站点时,我得到一个参数 more: etc .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]

但这似乎不起作用。

谁能帮我吗?

4

3 回答 3

5

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

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

这也是你在那里尝试做的事情是不可能的原因。

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

但除了笑话,最好建立在这条规则上,这已经很好了:

重写规则 ^([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]

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

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]
于 2013-03-22T10:47:31.257 回答
1

我想隐藏 .dk 之后的所有内容

这是不可能的。mod_rewrite 不能消除对每个资源都有唯一 URL 的需要。

(如果你确实做到了,那么它会破坏链接,包括书签和搜索引擎)。

于 2013-03-22T10:37:25.757 回答
-4

嘻嘻

试试

$pathInfo = explode('/', trim($_SERVER['PATH_INFO'], '/'));
$pagina = $pathInfo[0];
$actie = $pathInfo[1]; 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]

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

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]

或者

list($pagina, $actie) = explode('/', trim($_SERVER['PATH_INFO'], '/'));

你也可以试试:

选项 +FollowSymLinks RewriteEngine On RewriteRule ^folder1/(.*)$ /Link. com/folder2/$1 [R=301,L]

于 2013-03-22T10:51:03.017 回答