我有一个单页网站,可以根据通过PHP传递的变量来更改内容。
例如,我的网址显示为
www.mysite.com/index.php?section=home
www.mysite.com/index.php?section=about-us
等等,具体取决于您在主导航中点击的链接。
我希望网址为www.mysite.com/home
或www.mysite.com/about-us
。
我的mod-rewrite功能已启用,因为在我将其设为单页网站之前,它已正常运行。
我试过这个......
RewriteEngine on
RewriteBase /
RewriteRule ^home/?$ index.php?section=$1 [NC,L]
我已尝试过在Google和StackOverflow上找到的所有建议,但没有任何效果。
任何帮助将不胜感激!
答案 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>