.htaccess URL屏蔽而不是重定向

时间:2013-02-18 02:11:14

标签: apache .htaccess url-masking

我正试图掩盖网址,就像真正的网址 www.somedomain.com/subfolder/index.php?p=page3 一样,它显示 www.somedomain.com/subfolder/page3 ,我知道这些问题有在这里被问了很多,我做了很多搜索,但大多数结果都没有满足我的要求,除了关于htaccess调整的基础知识,我几乎什么都不知道。

我搜索时得到的一个结果有以下htaccess代码:

  

选项+ FollowSymLinks
     选项+索引
     RewriteEngine On      RewriteRule ^ index.php $%{QUERY_STRING} [C]
     RewriteRule p =(。*)www.somedomain.com/subfolder/$1? [R = 301,L]

它完成了关于URL重写的技巧,但它重定向页面而不是仅仅屏蔽URL并且它给出了404错误,即使我删除了R = 301它也不起作用。

当我启动子文件夹 www.somedomain.com/subfolder/ 的索引页时,上面的代码也会出现500服务器错误。

最后我想提一下,我正在使用localhost中的子目录进行测试,以防它产生差异,因为我在网上发现的一些代码根本不起作用或者它们提供500服务器错误。

非常感谢提前。

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
# Prevent loops
RewriteCond %{REQUEST_URI} !index\.php         [NC]
RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/? [NC]
RewriteRule .*  %1/index.php?page=%2           [L]

静默地映射:

带有或不带斜线的

http://www.somedomain.com/anyfolder/val

以上是输入的网址,并显示在浏览器的地址栏中。

要:

http://www.somedomain.com/anyfolder/index.php?p=val

假设字符串anyfolderval是动态的。

对于永久重定向,请将[L]替换为[R=301,L]