1

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

例如,我的网址显示为

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

依此类推,具体取决于您在主导航中单击的链接。

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

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

我试过这个...

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

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

任何帮助,将不胜感激!

4

3 回答 3

1

几乎

RewriteEngine on
RewriteBase /
RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?section=$1 [NC,L]
于 2012-06-14T01:38:23.347 回答
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,它只是意味着后一个链接与前一个链接一样工作。如果你想让它自动替换它,你需要的代码不止一行。

于 2012-06-14T01:54:47.953 回答
1

这就是我使用的:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule ^([A-Za-z0-9-]+)/?$     index.php?section=$1 [NC,L]
</IfModule>
于 2012-06-14T01:59:50.670 回答