2012-06-14 87 views
1

我有一个单页网站,它根据通过URL传递的变量来改变内容。.htaccess单页网址的url重写

例如,我的网址显示为

www.mysite.com/index.php?section=home 
www.mysite.com/index.php?section=about-us 

等等等等,这取决于哪一个环节,你的主导航点击。

我想要这些网址为www.mysite.com/homewww.mysite.com/about-us

我的mod重写功能已启用,因为在我将其作为单页网站之前,它的功能正常。

我已经试过这...

RewriteEngine on 
RewriteBase/
RewriteRule ^home/?$ index.php?section=$1 [NC,L] 

我想尽我的建议对谷歌和StackOverflow上发现,没有什么工作。

任何帮助,将不胜感激!

+0

谷歌“清洁URL”,“漂亮的网址”,“URL重写”等,有很多很多的答案,那里已经是。 –

+0

这里的答案与多页网站看起来相关,不适用于单页网站。我会采取你的建议,并尝试再次寻找。 –

+0

我实际上使用'RewriteRule'来达到和你一样的目的,一个单一的页面网站。我会发布一个例子作为答案,因为我保证它的工作。 –

回答

1

我有一个.htaccess完全相同的目的,它的工作精美。我的代码如下。

RewriteEngine On 
RewriteRule ^([^/\.]+)/?$ index.php?id=$1 [L] 

当然,如果index.php不是您的主要PHP文件,请用什么替代。另外,如果您的示例代码是您使用的代码,请将?id替换为?section

什么[^/\.]+意思是说I need you to find text that contains anything but a period (.) or a forward slash (/), and there has to be at least one character in it.

举个例子,去我使用它的网站上,Northside Aikido

如果您有任何问题,请随时询问。

编辑

注意,此代码将无法打开http://www.example.com/index.php?section=homehttp://www.example.com/home自动的,它只会意味着后者链接的作品像前。如果您希望它自动替换它,则需要比一行更多的代码。

+0

我把你在这里的东西放在我的htaccess文件中,但我仍然得到不洁净的网址。 –

+0

阅读我的编辑,它可能会指出你有什么问题。 –

+0

尝试进入'[page]/home'而不是'[page] /index.php? section = home'。 –

1

几乎

RewriteEngine on 
RewriteBase/
RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?section=$1 [NC,L] 
+0

不幸的是,这并不适合我。 –

+0

我相信有一个错字。看看这是否更好。 –

+0

也无法让它工作。一些奇怪的事情正在发生... –

1

这是即时通讯使用的是什么:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^([A-Za-z0-9-]+)/?$  index.php?section=$1 [NC,L] 
</IfModule> 
+0

这帮了我。谢谢! –