我正在寻找一组简单的规则和redirect我的网站。 我试过这么多的组合,我开始感到困惑。
我不知道如何设置。 一般情况下,没有mod重写,我会使用相对path链接到文件:
<a href="link.php">Link</a>
如果它在同一个目录中。
现在我想用这个:
<a href="link">Link</a>
所以,如果你去这个页面:
localhost/mysite/link
它会带你到正确的地方,这将是:
localhost/mysite/link.php
而且,还有很多目录层次,我希望它也能工作:
localhost/mysite/group/link2
会去:
localhost/mysite/group/link2.php
和:
localhost/mysite/group/section/link3
会去:
localhost/mysite/group/section/link3.php
但是,在所有这些情况下,如果有人input这个:
localhost/mysite/group/section/link3.php
在URL栏中,它会显示这个:
localhost/mysite/group/section/link3
谢谢
编辑
我认为我遇到的问题的一部分是我的网站根目录中有这些目录:
product1 ,产品2,产品3
而且我也将这些文件放在一个名为products的目录中:
product1.php , product2.php , product3.php
.htaccess文件不工作,直到我将这些文件名称更改为其他的,这是不同的目录名称。 这有道理吗? 这是预期的行为?
编辑2
我相信有人会来这个post寻找类似的帮助,就像我在写这个问题时一样。 mod_rewrite在这里和stackoverflow.com上都有很多好的答案。 我build议通读这些条款和规则,并在testing实例中试用这些条件和规则,以获取这些条件和规则。
我也意识到,使用频繁的浏览器caching清除和激活RewriteLog是必不可less的这个东西了。 例如:
RewriteLog“rewrite.log”RewriteLogLevel 7
玩的开心
你可以通过使用.htaccess来做到这一点。 正确的代码来实现这一点如下:
重写引擎
RewriteCond%{REQUEST_FILENAME}!-d
RewriteCond%{REQUEST_FILENAME} .php -f
RewriteRule ^(。*)$ $ 1.php