我目前有一个网站,我试图在SEO方面进行优化。
我的网站使用的网址如下:
domain.com/?app=about
在我的应用中,$_GET[app]
按预期设置为“关于”。
现在,我希望将domain.com/about
这样的网址视为domain.com/?app=about
。
如何在Apache .htaccess文件中执行此操作?
答案 0 :(得分:8)
这些被称为RewriteRule
,它们非常简单:
RewriteEngine on
RewriteRule ^about$ /index.php?app=about
至于使它更通用,那怎么样:
RewriteEngine on
RewriteRule ^([A-Za-z]+)$ /index.php?app=$1
这会对/ staff或/ contact重定向到index.php这样的任何请求?app = [staff | contact]
答案 1 :(得分:2)
在.htaccess
中使用此功能RewriteEngine on
RewriteBase /your-site # only if neccessary
RewriteRule ^([^/])$ index.php?app=$1 [R,L]
修改强>
我添加了L标志意味着将此处理为最后一条规则,并且R标志本身不会更改URL ..只是在内部重写。执行R = 301会将浏览器转发到重写的页面,这对调试非常有用。
答案 2 :(得分:0)
创建一个通用.htaccess获取所请求的路径可以通过以下行完成:
RewriteRule ^((.+/)+)$ /index.php?path=$1 [L,B]
这将为您提供正确请求转义的路径,因此如果请求的路径为 / hello / world ,您将在path参数中获得 hello%2Fworld 。使用PHP函数urldecode()来获取原始格式。
仅当网址以'/'。
结尾时才有效注意如果你在同一个文件中有其他重写,你应该把它放在最后,因为它基本上匹配任何东西。