.htaccess url为单页网站重写

时间:2012-06-14 01:36:44

标签: php .htaccess dynamic-websites

我有一个单页网站,可以根据通过PHP传递的变量来更改内容。

例如,我的网址显示为

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

等等,具体取决于您在主导航中点击的链接。

我希望网址为www.mysite.com/homewww.mysite.com/about-us

我的mod-rewrite功能已启用,因为在我将其设为单页网站之前,它已正常运行。

我试过这个......

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

我已尝试过在Google和StackOverflow上找到的所有建议,但没有任何效果。

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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=home变为http://www.example.com/home,而只是意味着后一个链接的工作方式与前者相同。如果您希望它自动替换它,您需要的代码多于一行。

答案 2 :(得分:1)

这就是我正在使用的:

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