Htaccess rewriteCond和)规则重写这些

时间:2014-06-12 14:41:17

标签: php angularjs .htaccess mod-rewrite url-rewriting

我一直在努力解决这个问题,因为我在改写方面不太好。

我想要这样的网址:

http://www.example.com/d/page1
http://www.example.com/d/page2
http://www.example.com/d/anythinghere

总是解决(重写)到这个:

http://www.example.com/dir.php

或者可能更好的事件:

http://www.example.com/dir

反过来应该重写为/dir.php

对于那些想知道为什么需要这样的人: 我需要让我的AngularJS非单页面应用程序在没有hashbang的情况下工作,我需要我的分页或任何东西 - 我想拥有独特的页面URL,以便Web蜘蛛正确地抓取我的内容。

所以我希望我能够通过在我的页面中解决这些请求,AngularJS dir.php<a href="/page3" ng-click="someMethod()">Go to page 3</a>个链接:{{1}}

我仍然不确定这是否会起作用。无论如何,这个重写的目的是强制服务器在点击这样的链接时不要离开这个页面。这让我感到震惊:但它至少会创建一个页面重新加载,不是吗?如果是这样,那真的很糟糕......

3 个答案:

答案 0 :(得分:0)

RewriteRule ^/d/(.*)$ dir.php/$1
RewriteRule ^/dir/(.*)$ dir.php/$1

第一条规则将更改/ d /更改为/dir.php

第二条规则会将/ dir /之后的所有内容转发给/dir.php

答案 1 :(得分:0)

菜单上的

更改链接

<a href="dir.php">Your Menu <a/>

<a href="dir">Your Menu <a/>

在。 htaccess文件试试这个

RewriteEngine On
RewriteRule ^dir dir.php

答案 2 :(得分:0)

实际上,我之前的所有尝试都是有效的 - 事情是我的布局已经破了,所以我认为重写是不完全正确的。事实证明,包括<base href="/">通过强制路径相对于根来纠正了这个问题。